Upsquared robomaker twist to ackermann drive conversion causes robot collision with obstacles

I am running robomaker with navigation2 and slam_toolbox with a rplidar A1. The output of navigation2 is cmd_vel. Hence I launch the twist_to_ackermann script provided by cogniteam to convert from cmd_vel to ackermann_cmd. The navigation package properly charts a course to the goal pose. However, the robot doesn't follow the path correctly and bumps into obstacles and sometimes runs in circles because it cannot make a sharp turn and reach the final pose.

I know turtlebot has a differential drive and robomaker kit has a single motor driving all 4 wheels. Given the single motor, I wonder if robomaker kit can actually accomplish what I am trying to do? Also, is the twist_to_ackermann script verified with navigation?

Appreciate the help. I am new to robotics.

Comments

  • spoluri
    spoluri New Member Posts: 5

    I think I have this figured out. My navigation2 package was using a NavFn Planner for motion planning which is not meant for an ackermann drive. I am switching to a Smac planner with Reeds-Shepp since kit is a non-holonomic robot with ability to go in reverse.
    Will update here with the results of this test.

  • spoluri
    spoluri New Member Posts: 5

    Having switched to the smac_planner and porting some of the settings related to the robomaker kit to the navigation2 params file, the behavior is much better and the robot doesn't run around in circles around a destination. However, it still runs into obstacles. I have verified all settings by looking at the ROS1 hamster_ws folder from cogniteam wiki. Only settings that I don't have info on are:
    max_speed_xy
    Max_rotational_vel
    Min_rotational_vel

    Please let me know if there is an official document lists such details for the robomaker kit. Otherwise, it would be a good idea to publish such a document.