Implement Simulation Using ROS and Gazebo
- [x] Add URDF files using [1] but with ackerman's steering
- [ ] Be able to access models' joints from a pytest
- [ ] Create a test world and load it with pytest
- [ ] Create a mock test with pass conditions (but actuators are within the test)
- [x] Create translation layer from
car_poseto gazebo joint actuators.
Low priority:
- [x] Get CAD from RJ for visual elements of the simulation
Resources: [1] roboracing urdf [2] ROS Wiki [3] Actual Gazebo Website [4] URDF and Gazebo Docs
This is a partial duplicate of #20 but I'll let Josh's PR ( #111 ) close that issue and keep this one because you have checkmarks
Ah, I looked to see if there would be any duplicates. I missed that one because it was buried under other things that that issue covers. We can keep track of just Gazebo things here for greater clarity.
@dacohen is working on making URDF files
Daniel, you might want to look at [1], [2] and [3] for some ready-made interface for some ackerman's steering models. I can't find ready-made URDF for them, but I'm sure they exist.
[1] http://wiki.ros.org/Ackermann%20Group
[2] http://docs.ros.org/api/ackermann_msgs/html/msg/AckermannDrive.html
[3] https://github.com/jack-oquin/ackermann_teleop
#181, how is this going?
According to @evanxq the actuators work (from car pose to simulation), which means that #182, #160, #159, will all be fixed with PR #181, which is in code review rn. Left on this will be: #161, #179 #158, but the last two are low priority
For future reference, implementing simulation tests in pytest might not be as straight forward as @with_launch_file('buzzmobile', 'simulation.launch'). See [0]. "gazebo_rosmaster_uri is also a thing", says @joshuamorton. Might require a whole new set of test utils.
[0] http://answers.ros.org/question/193062/how-to-run-multiple-independent-gazebo-instances-on-the-same-machine/
So from the investigation I did yesterday, here's what (I believe) the state of gazebo simulation is:
- Some dependencies aren't installed by default, this is easy to fix with a
rosdep install, but you need to know which things they are. For reference, I believe its the needed packages arehector_gazebo_plugins controller_manager controller_manager_msgs, at least that's what seemed to work on my system - This is pseudo-blocked by #189. I think a minimum viable product here would be a node that publishes a constant polyline. In the make-sim-work branch, I'm currently just not running any of the googlemaps nodes, which is a fine temp workaround.
- Even with that, there appear to be some issues with simulation. I get errors ( see here) that point to a misconfiguration in the URDF or joint mapping, I think.
@iRapha @chsahit
I'm gonna throw someone under the bus here and tag @kpberry bc he said he wants to help car this semester