turtlebot3 icon indicating copy to clipboard operation
turtlebot3 copied to clipboard

Turtlebot 3 Profile Acceleration seems to have no affect by setting it in *.yaml config file

Open Vinz1911 opened this issue 2 years ago • 7 comments

ISSUE TEMPLATE ver. 0.4.0

  1. Which TurtleBot3 platform do you use?

    • [x] Burger
    • [ ] Waffle
    • [ ] Waffle Pi
  2. Which ROS is working with TurtleBot3?

    • [ ] ROS 1 Kinetic Kame
    • [ ] ROS 1 Melodic Morenia
    • [ ] ROS 1 Noetic Ninjemys
    • [ ] ROS 2 Dashing Diademata
    • [ ] ROS 2 Eloquent Elusor
    • [X] ROS 2 Foxy Fitzroy
    • [ ] etc (Please specify your ROS Version here)
  3. Which SBC(Single Board Computer) is working on TurtleBot3?

    • [ ] Intel Joule 570x
    • [ ] Raspberry Pi 3B+
    • [X] Raspberry Pi 4
    • [ ] etc (Please specify your SBC here)
  4. Which OS you installed on SBC?

    • [ ] Raspbian distributed by ROBOTIS
    • [ ] Ubuntu MATE (16.04/18.04/20.04)
    • [X] Ubuntu preinstalled server (18.04/20.04)
    • [ ] etc (Please specify your OS here)
  5. Which OS you installed on Remote PC?

    • [ ] Ubuntu 16.04 LTS (Xenial Xerus)
    • [ ] Ubuntu 18.04 LTS (Bionic Beaver)
    • [X] Ubuntu 20.04 LTS (Focal Fossa)
    • [ ] Windows 10
    • [ ] MAC OS X (Specify version)
    • [ ] etc (Please specify your OS here)
  6. Specify the software and firmware version(Can be found from Bringup messages)

    • Software version: [x.x.x]
    • Firmware version: [x.x.x]
  7. Specify the commands or instructions to reproduce the issue.

    • Set profile_acceleration in the *.yaml config file to any value
    • publish twist in ros2 to cmd_vel
  8. Copy and Paste the error messages on terminal.

    • HERE
  9. Please describe the issue in detail.

i want the robot not so hard "start" and "stop" during movement. so I figured out that it's possible to set the dynamixels profile acceleration during turtlebot3_bringup by changing the value in the *.yaml config file (I changed it in the burger.yaml). but it seems that this has no effect. the acceleration is as fast as before.

Vinz1911 avatar Feb 17 '22 19:02 Vinz1911

i want to add: if i apply the value manually with the following command, then it works without any problems: ros2 param set /turtlebot3_node motors.profile_acceleration 50000.0

but if I add the value to the burger.yaml then it's not applied.

Vinz1911 avatar Feb 17 '22 22:02 Vinz1911

Hi. @Vinz1911. I'm sorry for the late reply.

May I know if you have modified the burger.yaml file in SBC? Thanks for letting me know.

Have a nice day~ thank you :)

ROBOTIS-Ashe avatar Feb 22 '22 05:02 ROBOTIS-Ashe

Thank you for your reply.

Yes i modified the .yaml on the sbc. I also did add an wrong parameter to the file to check if it throws an error on the startup so i can get sure that the correct file is loaded during the startup.

After that i Removed the Parameter so that the startup get's not interruptet (just for clarification).

The file is correct but the value get's Not Applied :(

Vinz1911 avatar Mar 05 '22 17:03 Vinz1911

Hi @Vinz1911.

As a result of testing I modified the profile_acceleration of the turtlebot3_bringup/param/burger.yaml file to 50000.0. And I was able to confirm that the parameter value has changed through the command below.

ros2 param get /turtlebot3_node motors.profile_acceleration

image

sorry for inconveniencing to you, After modifying the file in the turtlebot3_bringup package, did the parameter value not change to 50000.0? (Was the value still held at 0.0?)

Thank you.

ROBOTIS-Ashe avatar Mar 07 '22 07:03 ROBOTIS-Ashe

Hi @ashekim

Yes this is very interesting. I got the same result, the value is changed but NOT applied to the OpenCR. I can also see that the value has changed but the turtlebot accelerates as fast as before. You can check this by applying a much lower value, for example: 5000.0, which should result in a much slower acceleration. But the TB3 still accelerates as fast as the dynamixel's allow it 😄

Vinz1911 avatar Mar 07 '22 11:03 Vinz1911

Hi @Vinz1911.

It seems necessary to check that the value is not applied when running robot.launch. Additionally, after setting it to 1000, testing seems to have produced the desired result.

For more information about Profile Acceleration, please see the attached link below. [1]. e-manual : profile-acceleration [2]. e-manual : what is the profile

Thank you for your patience.

Thank you. :)

ROBOTIS-Ashe avatar Mar 10 '22 01:03 ROBOTIS-Ashe

Hi again @Vinz1911.

After receiving the profile_acceleration parameter from the add_motors(), Turtlebot3 executes the run(). The run() includes a parameter_event_callback() function. The parameter_event_callback() writes a new profile_acceleration to DXL when the profile_acceleration parameter value changes.

Even if the parameter value was initially set to 5000.0, there was no change in the DXL speed because there was no parameter change in the parameter_event_callback executed after that.

Therefore, unfortunately, the solution that I can give right now seems to be to change the value of the profile_acceleration parameter continuously with the param set command.

It seems that this issue needs to be discussed internally. Thank you for your understanding.

Thank you.

ROBOTIS-Ashe avatar Mar 10 '22 06:03 ROBOTIS-Ashe