brannonvann / neato-ros

Turn your Neato vacuum into a ROS robot using a Raspberry Pi. This project contains the code and instructions to run ROS the Raspberry Pi, setup ROS, and install the ROS node to control the Neato robotic vacuum. The code includes the ROS Neato node that communicates to a Neato vacuum using the USB port and the neato-driver-python.
BSD 3-Clause "New" or "Revised" License
13 stars 1 forks source link

no gui.launch #1

Open cyberbilly opened 2 years ago

cyberbilly commented 2 years ago

Everything seems to work up to roslaunch neato gui.launch. which yields "RLException: [gui.launch] is neither a launch file in package [neato] nor is [neato] a launch file name The traceback for the exception was written to the log file"

Index of file:///home/bill/catkin_ws/src/neato-ros/neato/launch/include/ does not show any gui.launch.

brannonvann commented 2 years ago

@cyberbilly I can take a look at it next week. I took a look on my phone and don’t recall if that launch file was supposed to be included in this code or pulled in from somewhere else.

cyberbilly commented 2 years ago

I found that /home/bill/catkin_ws/src/neato-ros/neato/launch/include/ did have a Display.launch and that worked, Once I figured out that your instructions did not cover installing rviz.

Next problem I think is actual communication over usb. I can communicate fine using a serial communication app with /dev/ttyAS0 and in /dev there is symlink to "neato" as per instructions. But base.launch fails. I will investigate that and let you know. the error is:

auto-starting new master process[master]: started with pid [3801] ROS_MASTER_URI=http://localhost:11311

setting /run_id to ad9159e2-0a8b-11ed-9f8f-2d0c5d8a3e16 process[rosout-1]: started with pid [3811] started core service [/rosout] process[neato-2]: started with pid [3814] process[robot_state_publisher-3]: started with pid [3815] process[teleop_joystick-4]: started with pid [3816] process[joystick-5]: started with pid [3817] [ERROR] [1658583059.052093291]: Couldn't open joystick /dev/input/js0. Will retry every second. Traceback (most recent call last): File "/home/bill/catkin_ws/src/neato-ros/neato/src/neato_node.py", line 49, in import neato_driver_python.neato_driver as robot File "/home/bill/catkin_ws/src/neato-ros/neato/src/neato_driver_python/neato_driver.py", line 15, in import serial ModuleNotFoundError: No module named 'serial' [neato-2] process has died [pid 3814, exit code 1, cmd /home/bill/catkin_ws/src/neato-ros/neato/src/neato_node.py name:=neato log:=/home/bill/.ros/log/ad9159e2-0a8b-11ed-9f8f-2d0c5d8a3e16/neato-2.log]. log file: /home/bill/.ros/log/ad9159e2-0a8b-11ed-9f8f-2d0c5d8a3e16/neato-2*.log

cyberbilly commented 2 years ago

Okay so python doesn't come with serial so needs to be added by "sudo apt-get install python3-serial"

Then /dev/neato and linked /dev/ttyACM0 need 777 permissions.

These probably need to added to your most excellent instructions. Along with how to set up keyboard instead of joystick. I have not figured that out yet....

next problem display launch yields: ERROR: cannot launch node of type [robot_state_publisher/state_publisher]: Cannot locate node of type [state_publisher] in package [robot_state_publisher]. Make sure file exists in package path and permission is set to executable (chmod +x)

I have to break, I'll look into this and let you know.

cyberbilly commented 2 years ago

problem was robot_state_publisher/state_publisher should be robot_state_publisher/robot_state_publisher. that's correct but node is already created in neatobase. So I deleted line out of neatobase.

Seems to be working now... cheers!