[SOLVED] Individually oriented wheel control - Husky


#1

Hello Neuroboticist, :space_invader:

Maybe this is a noob question, my background is in programming and sometimes I struggle with robotics.

I’ve read the tutorial a couple of times and I’m still fighting.

In the Husky experiment, using direct NEST, neurons communicate with both wheels at the same time in one side in the transfer function.

So left_wheel_neuron are the two wheels on the left (back and front). When inspecting the robot’s actuators it is noticeable that there is the back_left_wheel and the front_left_wheel. Turns out I don’t understand where this left_wheel_neuron was oriented that directs control of both side wheels. I would like to control the wheels individually, direct one neuron only to back_left_wheel and another to front_left_wheel.

Does anyone have a tip ?

:pray:


#2

Dear William,

Our controller for the Husky robot exposes 2 topics that can be written to:

  • /husky/husky/wheel_speeds gazebo_msgs/WheelSpeeds
  • /husky/husky/wheel_speeds gazebo_msgs/LinearTwist

In the linear_twist transfer function in the Husky NRP experiment, we control only the latter, which is a high level command that is converted by the controller into actual wheel speeds. But you can safely use the first one to command individual wheels. Just deactivate the linear_twist transfer function and play around with the topic, like:

rostopic pub /husky/husky/wheel_speeds gazebo_msgs/WheelSpeeds “back_left_wheel: 0.0
back_right_wheel: 0.0
front_left_wheel: -2.0
front_right_wheel: 0.0” -r 1000


#3

vonarnim you are the best ! :alien:

With your comment I realized I was having difficulty to understand ROS Terminal because it was freezing and so I didn’t understand the interaction of the topics (I thought I didn’t know how to use the ROS terminal properly, but the fact was the problem in terminal).

I even found the freezing thread:

I was acessing NRP in 3.1 version and the ROS Terminal freezes every single time for any command. I used the NRP version 3.0.5 and it worked a little better. The sufficient the explore it commands, but sometimes freezes.

Your comment clears the way for me. So thankful @vonarnim.

I had discovered that the topic /husky/husky/cmd_vel was where the controllers configuration of the wheels and the robot twist was. I had found an example in the old tutorial of a code controlling the wheels individually and it might be useful to someone in the future:

https://developer.humanbrainproject.eu/docs/HBP%20Neurorobotics%20Platform/latest/nrp/tutorials/virtual_coach/batch_simulations.html

Correcting my past self, the variable left_wheel_neuron doesn’t influence the wheel control because it is already defined by the Topic /husky/husky/cmd_vel . For greater independence in controlling the actuators, the topic /husky/husky/wheel_speeds (as @vonarnim mentioned) is the secret to use in code.:man_teacher:


#4

Thanks William for your enthusiasm :slight_smile:
The credits go to the developers !

Happy we could help