[Solved] Tutorial # 3 - Running Motor controller - roslaunch rosbot_ekf all.launch

Hi,

After typing this code (roslaunch rosbot_ekf all.launch), I get the following error:

husarion@husarion:~$ roslaunch rosbot_ekf all.launch
[all.launch] is neither a launch file in package [rosbot_ekf] nor is [rosbot_ekf] a launch file name
The traceback for the exception was written to the log file

Thanks
Vineet

So, discovered i need to update to mbed firmware for my ROSBot2.0. Followed instructions at:

with no error till after this instruction: sudo stm32loader -c tinker -e -w -v rosbot-2.0-***.bin

husarion@husarion:~/stm32loader$ sudo stm32loader -c tinker -e -w -v rosbot-2.0-.bin
Bootloader version: 0x31
Chip id: 0x413 (STM32F405xx/07xx and STM32F415xx/17xx)
Supply -f [family] to see flash size and device UID, e.g: -f F1
Traceback (most recent call last):
File “/usr/local/bin/stm32loader”, line 9, in
load_entry_point(‘stm32loader==0.5.0’, ‘console_scripts’, ‘stm32loader’)()
File “build/bdist.linux-armv7l/egg/stm32loader/main.py”, line 37, in main
File “build/bdist.linux-armv7l/egg/stm32loader/main.py”, line 382, in main
File “build/bdist.linux-armv7l/egg/stm32loader/main.py”, line 201, in perform_commands
IOError: [Errno 2] No such file or directory: 'rosbot-2.0-
.bin’

Please help.

Thanks
Vineet

Hi,
According to manual you’re suppose to download the .bin file with the firmware onto your ROSbot and then use its name in that instruction, hence the *** in the example. So in case of file rosbot-2.0-fw-v0.9.0.bin it would be:

sudo stm32loader -c tinker -e -w -v rosbot-2.0-fw-v0.9.0.bin

Of course, you should run that instruction in the directory, that contains the downloaded firmware.

You can also use a simple script for that:

Save the script in your ROSbot’s home directory as fw_update.sh and then in terminal type:

chmod +x fw_update.sh

To update ROSbot firmware using this script just run:

./fw_update.sh 0.9.0

Hi,

I should have downloaded.

Your fw_updates.sh suggestion worked flowlessly.

Please add this step to the tutorial.

Thanks
Vineet

After this line, usarion@husarion:~/ros_workspace/src$ sudo apt-get install ros-kinetic-robot-localization

I get the following error:

Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
ros-kinetic-cmake-modules ros-kinetic-geographic-msgs
ros-kinetic-python-orocos-kdl ros-kinetic-tf2-geometry-msgs
ros-kinetic-uuid-msgs
The following NEW packages will be installed:
ros-kinetic-cmake-modules ros-kinetic-geographic-msgs
ros-kinetic-python-orocos-kdl ros-kinetic-robot-localization
ros-kinetic-tf2-geometry-msgs ros-kinetic-uuid-msgs
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 531 kB/631 kB of archives.
After this operation, 3946 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Err:1 http://packages.ros.org/ros/ubuntu xenial/main armhf ros-kinetic-python-orocos-kdl armhf 1.3.1-0xenial-20190609-164104-0800
404 Not Found [IP: 64.50.236.52 80]
Err:2 http://packages.ros.org/ros/ubuntu xenial/main armhf ros-kinetic-tf2-geometry-msgs armhf 0.5.20-0xenial-20190610-004402-0800
404 Not Found [IP: 64.50.236.52 80]
Err:3 http://packages.ros.org/ros/ubuntu xenial/main armhf ros-kinetic-robot-localization armhf 2.4.7-2xenial-20190610-010608-0800
404 Not Found [IP: 64.50.236.52 80]
E: Failed to fetch http://packages.ros.org/ros/ubuntu/pool/main/r/ros-kinetic-python-orocos-kdl/ros-kinetic-python-orocos-kdl_1.3.1-0xenial-20190609-164104-0800_armhf.deb 404 Not Found [IP: 64.50.236.52 80]

E: Failed to fetch http://packages.ros.org/ros/ubuntu/pool/main/r/ros-kinetic-tf2-geometry-msgs/ros-kinetic-tf2-geometry-msgs_0.5.20-0xenial-20190610-004402-0800_armhf.deb 404 Not Found [IP: 64.50.236.52 80]

E: Failed to fetch http://packages.ros.org/ros/ubuntu/pool/main/r/ros-kinetic-robot-localization/ros-kinetic-robot-localization_2.4.7-2xenial-20190610-010608-0800_armhf.deb 404 Not Found [IP: 64.50.236.52 80]

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Thanks
Vineet

Hi vgupta68,

It looks like you didn’t have access to internet while you executed command ‘sudo apt-get install ros-kinetic-robot-localization’. Please check your connection and try one more time.

Best regards,
Hubert

Hubert,

I did it again and got the same response as previously.

I ping to the ip address from ssh husarion@ipaddress to the robot and i have following response and i believe i have connection.

grl@grl-Precision-7520:~$ ping 192.168.1.223
PING 192.168.1.223 (192.168.1.223) 56(84) bytes of data.
64 bytes from 192.168.1.223: icmp_seq=1 ttl=64 time=251 ms
64 bytes from 192.168.1.223: icmp_seq=2 ttl=64 time=6.82 ms
64 bytes from 192.168.1.223: icmp_seq=3 ttl=64 time=3.84 ms
64 bytes from 192.168.1.223: icmp_seq=4 ttl=64 time=4.78 ms
64 bytes from 192.168.1.223: icmp_seq=5 ttl=64 time=5.42 ms
64 bytes from 192.168.1.223: icmp_seq=6 ttl=64 time=260 ms
64 bytes from 192.168.1.223: icmp_seq=7 ttl=64 time=6.12 ms
^C
— 192.168.1.223 ping statistics —
7 packets transmitted, 7 received, 0% packet loss, time 6010ms
rtt min/avg/max/mdev = 3.845/77.092/260.839/113.384 ms

I also pinged the ip address and got the following:

husarion@husarion:~$ ping 140.211.166.134
PING 140.211.166.134 (140.211.166.134) 56(84) bytes of data.
64 bytes from 140.211.166.134: icmp_seq=1 ttl=53 time=87.7 ms
64 bytes from 140.211.166.134: icmp_seq=2 ttl=53 time=86.3 ms
64 bytes from 140.211.166.134: icmp_seq=3 ttl=53 time=87.1 ms
64 bytes from 140.211.166.134: icmp_seq=4 ttl=53 time=88.2 ms
64 bytes from 140.211.166.134: icmp_seq=5 ttl=53 time=93.4 ms
64 bytes from 140.211.166.134: icmp_seq=6 ttl=53 time=88.1 ms
64 bytes from 140.211.166.134: icmp_seq=7 ttl=53 time=87.7 ms
c64 bytes from 140.211.166.134: icmp_seq=8 ttl=53 time=89.0 ms
64 bytes from 140.211.166.134: icmp_seq=9 ttl=53 time=87.4 ms
64 bytes from 140.211.166.134: icmp_seq=10 ttl=53 time=88.4 ms
64 bytes from 140.211.166.134: icmp_seq=11 ttl=53 time=87.4 ms
64 bytes from 140.211.166.134: icmp_seq=12 ttl=53 time=89.2 ms
64 bytes from 140.211.166.134: icmp_seq=13 ttl=53 time=89.3 ms
64 bytes from 140.211.166.134: icmp_seq=14 ttl=53 time=93.9 ms
64 bytes from 140.211.166.134: icmp_seq=15 ttl=53 time=88.1 ms
64 bytes from 140.211.166.134: icmp_seq=16 ttl=53 time=88.6 ms
^C
— 140.211.166.134 ping statistics —
16 packets transmitted, 16 received, 0% packet loss, time 15019ms
rtt min/avg/max/mdev = 86.346/88.789/93.972/2.015 ms

What other suggestion would you have?

I am charging the battery just in case right now.

Thanks
Vineet

Hi Vineet,

Right now you ping device in the same local network, you don’t have to have an internet connection to do this.

Please make connection via ssh to your Robot and try to ping any external server.

Best regards,
Hubert

Hubert,

I pinged the google.com and got the following response from ssh:

husarion@husarion:~$ ping google.com
PING google.com (172.217.12.238) 56(84) bytes of data.
64 bytes from iad30s15-in-f14.1e100.net (172.217.12.238): icmp_seq=1 ttl=56 time=11.5 ms
64 bytes from iad30s15-in-f14.1e100.net (172.217.12.238): icmp_seq=2 ttl=56 time=10.6 ms
64 bytes from iad30s15-in-f14.1e100.net (172.217.12.238): icmp_seq=3 ttl=56 time=12.1 ms
64 bytes from iad30s15-in-f14.1e100.net (172.217.12.238): icmp_seq=4 ttl=56 time=10.3 ms
64 bytes from iad30s15-in-f14.1e100.net (172.217.12.238): icmp_seq=5 ttl=56 time=10.9 ms
^C
google.com ping statistics —
5 packets transmitted, 5 received, 0% packet loss, time 4003ms
rtt min/avg/max/mdev = 10.337/11.142/12.124/0.651 ms
husarion@husarion:~$

Thanks
Vineet

Hubert,

I ran the sudo apt-get install ros-kinetic-robot-localization at directory /ros_workspace/src, which has rosbot_ekf folder in it.

Also, the following is in the /home/husarion/

husarion@husarion:~$ dir
Desktop Music Templates fw_update.sh ros_workspace
Documents Pictures Videos gpio_lib_python rosbot_description
Downloads Public catkin_ws ros_astra_camera stm32loader
husarion@husarion:~$ pwd
/home/husarion

Thanks
Vineet

Hubert,

I want to apologize in advance.

I thought reinstalling it again, and got to this error:

husarion@husarion:~$ cd ~/gpio_lib_python && sudo python setup.py install --record files.txt
python: can’t open file ‘setup.py’: [Errno 2] No such file or directory

So, i decided to delete gpio_lib_python, and asked to delete and I did.

Now i tried to remove the folder and does not and says permission denied. Ugh…

THen, i tried this:

husarion@husarion:~$ cd ~/ && git clone GitHub - TinkerBoard/gpio_lib_python
fatal: destination path ‘gpio_lib_python’ already exists and is not an empty directory.

HELP… How do start from scratch?

My apology.

VIneet

Hi,
Please perform:

sudo apt update
sudo apt dist-upgrade

if you haven’t already and then try:

sudo apt-get install ros-kinetic-robot-localization

once again.

If you want to remove gpio_lib_pyton, type:

sudo rm -rf ~/gpio_lib_python

I hope it helps. Let me know if anything changed.

After i run this code,

husarion@husarion:~/ros_workspace/src/rosbot_ekf/launch$ roslaunch rosbot_ekf all.launch
[all.launch] is neither a launch file in package [rosbot_ekf] nor is [rosbot_ekf] a launch file name
The traceback for the exception was written to the log file

I ran the above home/husarion, and then under path rosbot_ekf/src folder that has the launch file, and got same error.

Well. So after two hours, i ssh’d and above code works. Go figure.

Thanks
Vineet

Hi,

After rosrun plotjuggler PlotJuggler, i get the following:

husarion@husarion:~$ rosrun plotjuggler PlotJuggler
QXcbConnection: Could not connect to display
Stack trace (most recent call last):
#4 Object “/lib/arm-linux-gnueabihf/libc.so.6”, at 0xb5e28349, in abort
#3 Object “/lib/arm-linux-gnueabihf/libc.so.6”, at 0xb5e27647, in gsignal
#2 Object “/lib/arm-linux-gnueabihf/libc.so.6”, at 0xb5e19af5, in gnu_get_libc_version
#1 Object “/lib/arm-linux-gnueabihf/libc.so.6”, at 0xb5e2826f, in __default_sa_restorer
#0 Object “/opt/ros/kinetic/lib/plotjuggler/PlotJuggler”, at 0xc869f, in backward::SignalHandling::sig_handler(int, siginfo_t*, void*)
Aborted (Signal sent by tkill() 2500 1000)
Aborted

Thanks
Vineet

Hi vgupta68,
Referring to error generated by roslaunch rosbot_ekf all.launch, after each time you run catkin_make and build your ros_workspace you have to restart your bash terminal or run:

source ~/ros_workspace/devel/setup.sh

See:

Regarding the PlotJuggler, have in mind it is a GUI program and if you try to run it over ssh session it will probably crash. If you want to have remote access to your ROSbot and use PlotJuggler you can:

  1. Connect to ROSbot using remote desktop client with RDP protocol. See:
    ROS introduction | Husarion
  2. Create husarnet account, add your computer and ROSbot to the virtual network and run PlotJuggler on your local computer. See:
    https://docs.husarnet.com/getting-started-ros/

I hope it answers your questions.

BBq77,

Thanks. I forgot again about the GUI. it works… Solved.

Next section with tutorial_3.launch worked.

Next, Rviz. That worked too.

Thanks
Vineet