[Solved] No module named pythonwifi.iwlibs

Just followed ROSbot quick start procedure on new ROSbot 2.0.
When running Usage procedure, the web browser shows correct images. Get messages “No message received” and unable to control vehicle with any control.

Terminal messages include:
No module named pythonwidi.iwlibs from … wifi,py line 4.
No module named tornado elsewhere.

Any suggestions?

Hello EdSeymore

The message indicates, that web server can not find two python packages. The tornado package is required for webUI to establish communication with ROS.
Please make sure they are installed:

python -m pip install --user tornado==4.5.3 python-wifi ifparser

Regards,
Łukasz

Thanks Lukasz:

Your suggestion did indeed correct the missing package messages.

I am still getting the “No message received” messages and unable
to control vehicle with motion control.

I noticed that the quick start page has been update and simplified.

I am not sure about adding to the bashrc file in the prior quick start
version: the . /home/husarion/ros_workspace/devel/setup.sh was already
present. Not sure if the roslaunch rosbot_ekf all.launch should also
be included.

I am puzzled why tornado and pythonwidi.iwlibs were missing.

I am not sure what I did incorrectly during the setup.

For someone new to Ubuntu, ROS, and ROSbot design, it is a little
overwhelming.

Hi EdSeymore,

I’m glad to hear that we resolve some of your issues.

May I ask you to make one test related to this sentence?

I am still getting the “No message received” messages and unable to control vehicle with motion control.

Run in terminal, right after running rosbot_webui this command:

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

And try to drive ROSbot using keys: u i o j k l m , .

Please let me know if you are able to move robot wheels this way.

Best regards,
Hubert

Not sure how to follow your suggestion from ssh husarion@[my WiFi address] terminal session.

Once I enter roslaunch rosbot_webui demo_rosbot_mbed_fw.launch, the ternimal session does not accept any new input. It has displayed output and stops displaying; but, does not accept input.

However, I did get a new message in red which is very difficult to read on a black background!

Still getting the same results from the browser session.

Message is:[rosbridge websocket-31] process has died
[pid 1840. exit code 1, cmd /opt/ros/kinetic/lib/rosbridge_
server/rosbridge_websocket __name:=rosbridge_websocket
__log:=/home/husarion/.ros/log/e80efe-8653-llea-8b22-
d0c5d3812921/rosbridge_websocket-31.log].

OK. I figured it out:
Start the Windows Remote Desktop Connection and opened second terminal.
That worked. I can move the vehicle with the keyboard from the second terminal.

Hello EdSeymore,

This message means that web server fails for some reason. To figure out the reasons, please provide:

  1. Full output from console. Not only the error, but all messages since roslaunch up to the error.
  2. Contents of log file: /home/husarion/.ros/log/e80efe-8653-llea-8b22- d0c5d3812921/rosbridge_websocket-31.log

Regards,
Łukasz

Not sure how to upload files:
From copy of terminal used to launch demo: first questionable item

. logging to /home/husarion/.ros/log/8e9227a4-8894-11ea-8124-d0c5d3812921/roslaunch-husarion-1339.log

  • /rplidarNode/in2020-04-27 14:37:07+0000 [-] Log opened.
    2020-04-27 14:37:08+0000 [-] Traceback (most recent call last):
    2020-04-27 14:37:08+0000 [-] File “/opt/ros/kinetic/lib/rosbridge_server/rosbridge_websocket”, line 48, in
    2020-04-27 14:37:08+0000 [-] from rosbridge_server import ClientManager
    2020-04-27 14:37:08+0000 [-] File “/opt/ros/kinetic/lib/python2.7/dist-packages/rosbridge_server/init.py”, line 2, in
    2020-04-27 14:37:08+0000 [-] from .websocket_handler import RosbridgeWebSocket
    2020-04-27 14:37:08+0000 [-] File “/opt/ros/kinetic/lib/python2.7/dist-packages/rosbridge_server/websocket_handler.py”, line 49, i$
    2020-04-27 14:37:08+0000 [-] from rosbridge_library.rosbridge_protocol import RosbridgeProtocol
    2020-04-27 14:37:08+0000 [-] File “/opt/ros/kinetic/lib/python2.7/dist-packages/rosbridge_library/rosbridge_protocol.py”, line 34,$
    2020-04-27 14:37:08+0000 [-] from rosbridge_library.protocol import Protocol
    2020-04-27 14:37:08+0000 [-] File “/opt/ros/kinetic/lib/python2.7/dist-packages/rosbridge_library/protocol.py”, line 40, in <modul$
    2020-04-27 14:37:08+0000 [-] from rosbridge_library.util import json, bson
    2020-04-27 14:37:08+0000 [-] File “/opt/ros/kinetic/lib/python2.7/dist-packages/rosbridge_library/util/init.py”, line 19, in <$
    2020-04-27 14:37:08+0000 [-] import bson
    2020-04-27 14:37:08+0000 [-] ImportError: No module named bson
    ^[[0m[ INFO] [1587998229.140079626]: Laser is mounted upwards.^[[0m
    -maxUrange 5 -maxUrange 11.99 -sigma 0.05 -kernelSize 1 -lstep 0.05 -lobsGain 3 -astep 0.05
    -srr 0.1 -srt 0.2 -str 0.1 -stt 0.2
    -linearUpdate 0.2 -angularUpdate 0.1 -resampleThreshold 0.5
    -xmin -25 -xmax 25 -ymin -25 -ymax 25 -delta 0.05 -particles 30
    ^[[0m[ INFO] [1587998229.154961917]: Initialization complete^[[0m

From log referenced in prior log: the reported error message
in nano roslaunch-husarion-1339.log

roslaunch][INFO] 2020-04-27 14:37:05,408: … launch_nodes complete
[roslaunch.pmon][INFO] 2020-04-27 14:37:05,408: registrations completed <ProcessMonitor(ProcessMonitor-1, started daemon -1238789008)>
[roslaunch.parent][INFO] 2020-04-27 14:37:05,409: … roslaunch parent running, waiting for process exit
[roslaunch][INFO] 2020-04-27 14:37:05,409: spin
[roslaunch][ERROR] 2020-04-27 14:37:08,737: [rosbridge_websocket-31] process has died [pid 1623, exit code 1, cmd /opt/ros/kinetic/lib/rosbridge_server/r$
log file: /home/husarion/.ros/log/8e9227a4-8894-11ea-8124-d0c5d3812921/rosbridge_websocket-31*.log
[roslaunch.pmon][INFO] 2020-04-27 14:37:08,738: ProcessMonitor.unregister[rosbridge_websocket-31] starting
[roslaunch.pmon][INFO] 2020-04-27 14:37:08,738: ProcessMonitor.unregister[rosbridge_websocket-31] complete
[roslaunch.pmon][INFO] 2020-04-27 14:38:15,745: ProcessMonitor.shutdown <ProcessMonitor(ProcessMonitor-1, started daemon -1238789008)>
[roslaunch.pmon][INFO] 2020-04-27 14:38:15,823: ProcessMonitor._post_run <ProcessMonitor(ProcessMonitor-1, started daemon -1238789008)>
[roslaunch.pmon][INFO] 2020-04-27 14:38:15,824: ProcessMonitor._post_run <ProcessMonitor(ProcessMonitor-1, started daemon -1238789008)>: remaining procs $
[roslaunch.pmon][INFO] 2020-04-27 14:38:15,830: ProcessMonitor exit: killing rosapi-32
[roslaunch][INFO] 2020-04-27 14:38:15,830: [rosapi-32] killing on exit
[roslaunch.pmon][INFO] 2020-04-27 14:38:15,831: ProcessMonitor exit: killing webvideo4-30
[roslaunch][INFO] 2020-04-27 14:38:15,831: [webvideo4-30] killing on exit

The log referenced in the message does not seem to exist:
Opened but not closed ???

The message 2020-04-27 14:37:08+0000 [-] ImportError: No module named bson indicates that there is also a bson package missing, install it with:

python -m pip install --user bson

Regards,
Łukasz

Guys, I appreciate your help and this is an interesting process.
I installed bson as requested: web browser results the same,
new warning messages. We could continue this process; but,

Is this the way a new user is supposed to see your product?

I get the feeling that my ROSbot was from an old batch and the process I
followed before the quick start guide was updated did not bring the ROSbot code up to date.

The new process is much shorter.

Is there a better way forward than tracking down each error as it occurs?

Sincerely,
Ed Seymore

Since I did not hear back with a suggestion:

I tried to run the new quick setup process.
sudo stm32loader --help ran OK
sudo stm32loader -c tinker -f F4 return a couple of lines of text
./flash_firmware.sh returned: No such file or directory

Any idea why I am not being successful?

Status update:
Since flash_firmware.sh does not appear to be on the SD card
delievered with my ROSbot 2.0, I conclude that the SD card is backlevel.

The check for sudo stm32loader --help is not sufficient to determine
if the SD card needs to be built.

Looking at the SD card build proceedure, there seem to be two choices
for ROSbot 2.0:

  1. Tinker Board with Melodic
  2. Tinker Board with Kintec

I will try Tinker Board with Melodic first in order to get to the
newer level code.

Replaced the SD card and uploaded firmware.

try: roslaunch route_admin_panel demo_rosbot_mbed_fw.launch
Error: Cannot find module ‘express’

Status update:

Since I had a error with the new SD card with Tinker Board with Melodic.

I tried with new SD card with Tinker Board with Kinetec:

Problem: roslaunch route_admin_panel demo_rosbot_mbed_fw.launch in the
updated ROSbot - quick start failed.
So, I used the original roslaunch:

roslaunch rosbot_webui demo_rosbot_mbed_fw.launch

This provides a working combination for me.

ROSbot 2.0 is now working as I expected it should on day one of my
setup process.

Bottom line:

  1. do mechanical setup process
  2. follow procedure to build a new SD card with Tinker Board with Kinetec
  3. update the firmware with new version if needed
  4. follow Usage instructions: but
    use roslaunch rosbot_webui demo_rosbot_mbed_fw.launch

Should be able to get a working ROSbot 2.0 in a couple of hours
(even if you do not know Ubuntu, ROS or the hardware).

Hi EdSeymore,

Sorry for long time of response. As you saw we have two versions of image with ROS1:

  1. Tinker Board with Melodic
  2. Tinker Board with Kinetic

Image with ROS Kinetic was used for more than last two years and still is fully usable.
Image with ROS Melodic it’s new and all of new ROSbot’s goes to our clients with this system.

There are few differences between this two version, for example different pkg used in quick start:

  • In Kinetic we have ROSbot WebUI
  • In Melodic Rout Admin Panel

Both this pkgs can be installed on Ubuntu 16.04 and 18.04 but this is default configuration. Most of our clients goes through quick start right after receiving ROSbot, so that’s why quick start is focused on newest image version.

If you want to stay with Kinetic and rosbot_webui you can check previews version of tutorial in our github or install route_admin_panel following this tutorial.

We’re constantly trying to upgrade our documentation, but large amount of software changes make this very time-consuming. Thank you for your feedback about docs. Please feel free to share with us your comments in the future.

Best regards,
Hubert

1 Like