Controlling Mira using rqt_gui

I am unable to actuate/control the actuator via rqt_gui. Although I am able to do the same using the web-shell by publishing to the control topic.

Could someone tell me where I am going wrong?

rostopic pub /mira/roll_joint_position_controller/command std_msgs/Float64 "data: 0.2"

Hello @arnab007,
I am following the solution for Exercise 2.3, and it seems that the problem is the rate 1.0 in combination with the expression sin(i/100).
Possible solutions:

  • Keep your rate at 1.0 but you have to change the expression to sin(i/10)
  • Set your rate to 100 and you can use the expression sin(i/100).

Like in the following image:

urdf_mira_rqt_publish_rate

Hope this helps,

Roberto

hi @rzegers

Just trying to verify that the variable ā€œiā€ in the sine expression is the frequency rate yes?

Hello @mamojiz97,

the ā€œiā€ counter in the Python expression sin(i/10) does not represent the frequency rate. It represents the number of messages that have been published so far by the RQT message publisher plugin. The ā€œiā€ counter begins with 1 and will continue to increase as long as you keep publishing messages using the plugin.

In this case we use the expression sin(i/10) and the value of the ā€œiā€ counter to generate a sinusoidal waveform, where the amplitude of the waveform varies as a function of ā€œiā€ (the number of messages published). The division by 10 is used to control the period of the waveform.

For instance here are the first 40 values for the expression sin(i/10) when the counter ā€œiā€ starts from one, rounded to two decimal places:


sin(1/10) = 0.10
sin(2/10) = 0.20
sin(3/10) = 0.31
sin(4/10) = 0.39
sin(5/10) = 0.50
sin(6/10) = 0.59
sin(7/10) = 0.68
sin(8/10) = 0.77
sin(9/10) = 0.84
sin(10/10) = 0.87
sin(11/10) = 0.89
sin(12/10) = 0.90
sin(13/10) = 0.90
sin(14/10) = 0.88
sin(15/10) = 0.85
sin(16/10) = 0.81
sin(17/10) = 0.76
sin(18/10) = 0.71
sin(19/10) = 0.64
sin(20/10) = 0.57
sin(21/10) = 0.49
sin(22/10) = 0.41
sin(23/10) = 0.32
sin(24/10) = 0.23
sin(25/10) = 0.14
sin(26/10) = 0.04
sin(27/10) = -0.06
sin(28/10) = -0.16
sin(29/10) = -0.25
sin(30/10) = -0.34
sin(31/10) = -0.43
sin(32/10) = -0.51
sin(33/10) = -0.58
sin(34/10) = -0.64
sin(35/10) = -0.70
sin(36/10) = -0.75
sin(37/10) = -0.79
sin(38/10) = -0.83
sin(39/10) = -0.86
sin(40/10) = -0.88

Note that the values oscillate between -1 and 1, with a period of 20 (since the division factor is 10).

If you wanted to control the frequency rate of the waveform, you would need to adjust the rate at which messages are published using the RQT message publisher plugin. The frequency of the waveform would then be determined by the rate at which messages are being published.

Hope this helps,

Roberto

1 Like