Having followed the Articulated Robotics tutorials, I have a working rover in Gazebo (Harmonic/Humble) that I can drive around. I’m trying to replace the ros2_control bits with ArduPilotPlugin bits.
I can run the wildthumper example well enough (and drive it around with mavproxy). I can copy those bits into my own workspace and launch them correctly. However, for the life of me I can’t replicate that with my own simple robot definition.
This whole thing is such a convoluted mess of plugins, bridges, and other abstractions, Not to mention everything having to do with Gazebo has been renamed three times…I’ve been through every bit of documentation I can find and despite all that, I still don’t really know how to ask the right questions about why what I have isn’t working.
So, instead, can someone point me to the simplest example of an sdf model (with like two wheels and a base) that mavproxy can then drive around?
@bentwookie - the wildthumper example is probably a good place to start, since as far as ArduPilot is concerned it uses two PWM channels - one for throttle right and one for throttle left, as it is a skid steer rover. Those inputs are relayed to three wheel joints on each side.
To set your rover up with ArduPilot you’ll need to do the following:
Add an imu sensor to the the base_link. Copy the following element into the bottom of <link name="base_link"> before the closing tag.
Finally, the world file will need to set up various system plugins to ensure the sensors are active. I’d recommend using one of the runway.sdf examples and replace the imported model with your one.
Thank you for your reply! It got me much closer to success. I’m now able to get a simple sdf moving on the Gazebo side using mavproxy.
I’m not sure what the actual fix was. I moved my imu sensor tags inside the base_link link (they were on an adjacent link before). I also changed my joints from continuous to revolute with astronomical limits.