ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

[TB3] problem to connect wiimote to Turtlebot 3

I have two issues:
Issue#1:
In Teleoperation chapter: http://turtlebot3.readthedocs.io/en/latest/teleoperation.html, for every listed remote controller, all operations are marked as “[Remote PC]”. Should it be “[Turtlebot]” instead? We need to connect the remote controller directly with TB3, in order to control TB3 via the remote controller. It has nothing to do with the “Remote PC”. Please clarify this.

Issue#2:
I am not able to connect wiimote to TB3.
Here is what I did:
At first, run:
sudo apt-get install ros-kinetic-wiimote
then:
rosdep install wiimote
then:
rosmake wiimote

Everything is fine. No error found.

Then I try to pair wiimote with TB3. I get the following error:

$ rosrun wiimote wiimote_node.py
Press buttons 1 and 2 together to pair (within 6 seconds.)
(If no blinking lights, press power button for ~3 seconds.)
Wiimote read error
Read error (nunchuk cal)
/opt/ros/kinetic/lib/python2.7/dist-packages/wiimote/wiistate.py:157: RuntimeWarning: divide by zero encountered in divide
self.acc = WIIReading((self.accRaw - self._accCalibrationZero) / (self._accCalibrationOne - self.accCalibrationZero), self.time)

Then I added some logs in wiimote_node.py. and I found that the following line is not working:

wiimoteDevice = wiimode.WIIMote.WIIMote()

I went through the source code of wiimote module: WIIMote.py and then found that the following line is causing the problem:
self._wm = cwiid.Wiimote()
See http://docs.ros.org/diamondback/api/wiimote/html/WIIMote_8py_source.html

Anyway, I am able to pair wiimote directly with Ubuntu. But I am not able to pair it with TB3.
Have you seen similar problem? Any solutions?

Thank you very much.
–Kening

The tutorials are designed for you to plug your device joystick into the Remote PC. You can modify the configuration.

With respect to your wiimote issue that doesn’t seem to be TurtleBot related. The TurtleBots are running Ubuntu so they should work as any other Ubuntu computer. I’d suggest that you search for similar issues and if nothing is found ask on http://answers.ros.org

One side note:

If you’ve used the binary installations you shouldn’t need to use rosdep to install dependencies. And the wiimote package is a catkin package so you shouldn’t be trying to use rosmake to build it. If you’re still having trouble when you ask on http://answers.ros.org please make sure to include your full environment setup etc. Including what code you’ve checked out and what environment setup files you’ve sourced.

If you can reproduce a problem in the constructor of the Wiimote class, a ticket on the joystick_drivers repo is the right place to follow up.

Hi :slight_smile:

As @tfoote said that, Teleoperation examples are tested in Remote PC and RP3. But we recommend that this examples are run into the Remote PC due to stable bluetooth connection.
So @rknlhrqy have to bringup TurtleBot3 before start Teleoperation examples.

And I checked ‘sudo apt-get install ros-kinetic-wiimote’ is working and ‘wiimote_node’ is more reliable than ‘wiimote_node.py’. I changed some information about wiimote teleoperation in WIKI.

Give it a try and let me know how it works.

Thanks
Darby