utexas-bwi / segbot

ROS drivers for controlling Segway-based robots at the University of Texas at Austin
http://wiki.ros.org/segbot
Other
13 stars 20 forks source link

Kinetic: port code base to ROS Kinetic and Ubuntu Xenial #77

Closed jack-oquin closed 6 years ago

jack-oquin commented 7 years ago

xref: utexas-bwi/bwi#44, utexas-bwi/bwi_common#83

jack-oquin commented 7 years ago

xref: StanleyInnovation/segway_v3#26

jack-oquin commented 7 years ago

smart_battery_msgs is deprecated in Kinetic. It has been replaced by sensor_msgs/BatteryState. Since that message is also available in Indigo, the obvious solution is to migrate our code to the new message.

That looks straightforward.

jack-oquin commented 7 years ago

Dependencies that need a kinetic release:

jack-oquin commented 7 years ago

The suggested migration path for hokuyo_node is to urg_node, which we already use for ethernet-attached lasers.

jack-oquin commented 7 years ago

A lot of things needed for roberto, a segbot_v4 build and run using this rosinstall:

Many dependencies have to be installed manually, which is very annoying. Because there are some missing dependencies, rosdep will not install everything automatically. But, most of what's needed is now installed on roberto in the Xenial partition.

The biggest obstacle right now appears to be the missing hokuyo driver. I plan to update the launch scripts in the joq/kinetic branch to use the urg driver, instead. We can't merge that into master until it's all working on both Kinetic and Indigo.

jack-oquin commented 7 years ago

I am able to run segbot_v4.launch on roberto with the urg_node using the joq/kinetic branch, but it's configured for an Ethernet-attached URG. It needs to configure for the USB-attached device, instead.

jack-oquin commented 7 years ago

With some parameter updates, it now publishes data to the /scan topic. The filter node should translate that to /scan_filtered, but it fails:

[hokuyo_laser_filters-23] process has died [pid 29394, exit code -11, cmd /opt/ros/kinetic/lib/laser_filters/scan_to_scan_filter_chain __name:=hokuyo_laser_filters __log:=/home/users/joq/.ros/log/7f10c79c-9277-11e7-9fd7-d05099af6e6d/hokuyo_laser_filters-23.log].
log file: /home/users/joq/.ros/log/7f10c79c-9277-11e7-9fd7-d05099af6e6d/hokuyo_laser_filters-23*.log
jack-oquin commented 6 years ago

I can run segbot_v4.launch on roberto today. It works with teleop_twist_keyboard, but the hokuyo_laser_filters crash (see above) is still happening.

jack-oquin commented 6 years ago

Commenting out the angle_range_filter, seems to eliminate the crash. The code for that is in angle_range_filter.h inside segbot_sensors.

jack-oquin commented 6 years ago

Commit 5bf984b is just a work-around. Presumably that filter exists for a reason, and we need to figure out why it's crashing.

jack-oquin commented 6 years ago

@shihyunlo says we don't actually use the scan filters on segbot_v4, so it can be commented out from the launch script.

jack-oquin commented 6 years ago

With a fix to the bwi_launch for segbot_v4, amcl is now picking up the correct topic, and navigation via rviz is minimally working on Kinetic.

I tried visit door list and it failed repeatedly. Too tired to work on that today.

jack-oquin commented 6 years ago

@shihyunlo reports visit door list working now on roberto (segbot_v4).

jack-oquin commented 6 years ago

These changes look like they should work on Indigo as well as on Kinetic, given a compatible version of bwi_common, which should also work except for the clingo incompatibilities between Trusty and Xenial.