You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I am trying to use the '/gz_ros2_control/ign_ros2_control_demos/launch/ackermann_drive_example.launch.py' as an inspiration for my ackermann simulation.
When launching the ackermann_drive_example.launch.py and teleoperating it with the keyboard (vx=0.5 and wz=0.3) I experienced that the car turns to the right in Ignition when sending positive angular velocities. However, when visualizing the odom frame in rviz published by the ackermann steering controller, the car (shown by robotmodel subscribed to robot_description) turns to the left, as expected with positive angular velocities.
I would expect the car turning to the left also in Ignition following the robot base link convention (x: forward, y:left, z:up) in which the right hand rule says that positive angular velocities would turn to the left.
By inspecting the test_ackermann_drive.xacro.urdf, I could see that the 'left_wheel_steering_joint' and the 'right_wheel_steering_joint' define rpy="-1.57 0 0" which turns the base_link frame -90deg around the x axis leading to x:forward, y:down, z:left. Then, the axis section within the joint is defined as xyz="0 1 0" ,which means that the steering will be around the y axis transformed which points downwards, so in that case, a positive angular velocity is to the right as happening in Ignition when launching the simulation.
Trying to invert this behaviour to get positive angular velocities turning the car to the left, I have tried to change the 'left_wheel_steering_joint' and the 'right_wheel_steering_joint' origin section rpy="1.57 0 0" turning the base_link frame 90deg around the x axis leading to x:forward,y:up, z:right with axis="0 1 0" so that a positive angular velocity around y axis would turn to the left as expected. However, when doing that change and launching the simulation, the car turns to the left with positive angular velocities but the turning radius is heavily affected (from ~3m with the original setup to ~10m with the rpy joint change". It seems that is kind of drifting and not turning as it should.
I have also tried to maintain the original rpy rotation of the steering joints and changing the axis section xyz="0 -1 0" but it resulted in the same behaviour.
I would like to know if someone of you have experienced something similar as I could not found a solution for it.
Let me know if you can test it and which is your output.
The text was updated successfully, but these errors were encountered:
Hi, I am trying to use the '/gz_ros2_control/ign_ros2_control_demos/launch/ackermann_drive_example.launch.py' as an inspiration for my ackermann simulation.
When launching the ackermann_drive_example.launch.py and teleoperating it with the keyboard (vx=0.5 and wz=0.3) I experienced that the car turns to the right in Ignition when sending positive angular velocities. However, when visualizing the odom frame in rviz published by the ackermann steering controller, the car (shown by robotmodel subscribed to robot_description) turns to the left, as expected with positive angular velocities.
I would expect the car turning to the left also in Ignition following the robot base link convention (x: forward, y:left, z:up) in which the right hand rule says that positive angular velocities would turn to the left.
By inspecting the test_ackermann_drive.xacro.urdf, I could see that the 'left_wheel_steering_joint' and the 'right_wheel_steering_joint' define rpy="-1.57 0 0" which turns the base_link frame -90deg around the x axis leading to x:forward, y:down, z:left. Then, the axis section within the joint is defined as xyz="0 1 0" ,which means that the steering will be around the y axis transformed which points downwards, so in that case, a positive angular velocity is to the right as happening in Ignition when launching the simulation.
Trying to invert this behaviour to get positive angular velocities turning the car to the left, I have tried to change the 'left_wheel_steering_joint' and the 'right_wheel_steering_joint' origin section rpy="1.57 0 0" turning the base_link frame 90deg around the x axis leading to x:forward,y:up, z:right with axis="0 1 0" so that a positive angular velocity around y axis would turn to the left as expected. However, when doing that change and launching the simulation, the car turns to the left with positive angular velocities but the turning radius is heavily affected (from ~3m with the original setup to ~10m with the rpy joint change". It seems that is kind of drifting and not turning as it should.
I have also tried to maintain the original rpy rotation of the steering joints and changing the axis section xyz="0 -1 0" but it resulted in the same behaviour.
I would like to know if someone of you have experienced something similar as I could not found a solution for it.
Let me know if you can test it and which is your output.
The text was updated successfully, but these errors were encountered: