squirrel-project / squirrel_driver

0 stars 14 forks source link

New control #133

Closed ghost closed 6 years ago

ipa-nhg commented 7 years ago

@federico-b and @mzillich could you please test this?

ghost commented 7 years ago

Hi, currently our arm died. So we need to fix that first. We will test when it's working (likely after IROS though)

ipa-nhg commented 6 years ago

@mzillich @bajo the only working arm is in Vienna and they want to test the newest version of the driver as soon as possible, I will merge this and you only have to clone the upstream repository

bajo commented 6 years ago

@ipa-nhg @lokalmatador I was not in Vienna for a few weeks, so I am a little bit out of the loop. What and how should we test this pr?

ghost commented 6 years ago

Whether the controller does not publish when not actuated. So the requirement was to basically screw ros_control's design idea by making it only publish to the command topics when it really gets a command as otherwise, navigation would never be able to move the base. I think this was the problem. So you basically have to test whether our dirty hack works :D Another thing we also need to look into are the joint limits, which for now are not enforced as of the base (it only has velocity limits but no position limits resulting in that those limits for now appear to be zero which yields a robot that does not move at all!). In case, either you ask Michael or we can have a skype/hangout meeting tomorrow (after 3 pm) or on Friday.

Cheerio!

bajo commented 6 years ago

@ipa-nhg @lokalmatador Sorry for the late reply. I am unable to start the new control at all.

I tried it via roslaunch robotino_bringup tuw-robotino2.launch and roslaunch squirrel_control squirrel_control.launch Because of the new hardware and the fact that our hand is not yet back to Vienna I had to disable a few things in our tuw-robotino2.launch After launching it I receive this output.

`roslaunch robotino_bringup tuw-robotino2.launch ... logging to /home/squirrel/.ros/log/668f2dfc-9ec6-11e7-bfb3-00190f153f00/roslaunch-robotino-15185.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://robotino:36343/

SUMMARY

PARAMETERS

NODES /kinect/ depth_metric (nodelet/nodelet) depth_metric_rect (nodelet/nodelet) depth_points (nodelet/nodelet) depth_rectify_depth (nodelet/nodelet) depth_registered_hw_metric_rect (nodelet/nodelet) depth_registered_metric (nodelet/nodelet) depth_registered_rectify_depth (nodelet/nodelet) driver (nodelet/nodelet) kinect_nodelet_manager (nodelet/nodelet) points_xyzrgb_hw_registered (nodelet/nodelet) rgb_rectify_color (nodelet/nodelet) /arm_controller/ joint_states_relay (topic_tools/relay) ros_control_controller_manager (controller_manager/controller_manager) squirrel_control_node (squirrel_control/squirrel_hw_main) / airskin (airskin/airskin) bumper_sound (airskin/bumper_sound.py) hokuyo (hokuyo_node/hokuyo_node) kinect_base_link (tf/static_transform_publisher) kinect_base_link1 (tf/static_transform_publisher) kinect_base_link2 (tf/static_transform_publisher) kinect_base_link3 (tf/static_transform_publisher) origin_odom (tf/static_transform_publisher) robot_state_publisher (robot_state_publisher/robot_state_publisher) robotino_node (robotino_driver/robotino_driver) robotino_odometry_node (robotino_driver/robotino_odometry_node) robotino_pan_controller (robotino_driver/robotino_pan_controller) robotino_safety_node (robotino_safety/robotino_safety_node) robotino_tilt_controller (robotino_driver/robotino_tilt_controller) soundplay_node (sound_play/soundplay_node.py) twist_marker (twist_mux/twist_marker) twist_mux (twist_mux/twist_mux)

ROS_MASTER_URI=http://robotino:11311

core service [/rosout] found process[robot_state_publisher-1]: started with pid [15206] process[robotino_node-2]: started with pid [15207] process[robotino_safety_node-3]: started with pid [15208] process[airskin-4]: started with pid [15221] [ WARN] [1506000624.562152709]: The root link origin has an inertia specified in the URDF, but KDL does not support a root link with an inertia. As a workaround, you can add an extra dummy link to your URDF. process[bumper_sound-5]: started with pid [15232] process[soundplay_node-6]: started with pid [15246] process[robotino_odometry_node-7]: started with pid [15264] process[origin_odom-8]: started with pid [15269] [ INFO] [1506000624.620117909]: opening I2C device: '/dev/ttyAirskin' [ INFO] [1506000624.626748230]: Devantech USB-ISS adapter, rev. 6, serial number: 00021662

[ INFO] [1506000624.626867016]: using AirSkin sensor 5-forearm-end with I2C address (8 Bit) 08 [ INFO] [1506000624.626902528]: using AirSkin sensor 6-hand with I2C address (8 Bit) 0A [ INFO] [1506000624.626935508]: using AirSkin sensor 4-forearm-top with I2C address (8 Bit) 0C [ INFO] [1506000624.626963312]: using AirSkin sensor 2-upperarm-top with I2C address (8 Bit) 0E [ INFO] [1506000624.626988218]: using AirSkin sensor 3-forearm-bottom with I2C address (8 Bit) 10 [ INFO] [1506000624.627015842]: using AirSkin sensor 1-upperarm-bottom with I2C address (8 Bit) 12 process[hokuyo-9]: started with pid [15277] process[kinect/kinect_nodelet_manager-10]: started with pid [15299] process[kinect/driver-11]: started with pid [15303] process[kinect/rgb_rectify_color-12]: started with pid [15320] process[kinect/depth_rectify_depth-13]: started with pid [15349] process[kinect/depth_metric_rect-14]: started with pid [15359] process[kinect/depth_metric-15]: started with pid [15392] process[kinect/depth_points-16]: started with pid [15393] process[kinect/depth_registered_rectify_depth-17]: started with pid [15401] [ INFO] [1506000624.916232287]: Odometry connected to Robotino. process[kinect/points_xyzrgb_hw_registered-18]: started with pid [15431] [ INFO] [1506000624.936504155]: Initializing nodelet with 4 worker threads. process[kinect/depth_registered_hw_metric_rect-19]: started with pid [15454] [ INFO] [1506000624.969094479]: pad 5-forearm-end (addr 08) ready process[kinect/depth_registered_metric-20]: started with pid [15458] process[kinect_base_link-21]: started with pid [15483] process[kinect_base_link1-22]: started with pid [15494] process[kinect_base_link2-23]: started with pid [15502] process[kinect_base_link3-24]: started with pid [15510] process[robotino_tilt_controller-25]: started with pid [15518] process[robotino_pan_controller-26]: started with pid [15529] process[arm_controller/squirrel_control_node-27]: started with pid [15544] process[arm_controller/ros_control_controller_manager-28]: started with pid [15550] process[arm_controller/joint_states_relay-29]: started with pid [15556] process[twist_mux-30]: started with pid [15564] process[twist_marker-31]: started with pid [15580] [ INFO] [1506000625.298380905]: Topic handler 'teleop' subscribed to topic 'cmd_teleop': timeout = 0.250000s, priority = 100 [ INFO] [1506000625.356535036]: Topic handler 'navigation' subscribed to topic 'cmd_navigation': timeout = 0.250000s, priority = 90 [ INFO] [1506000625.386325379]: Topic handler 'pushing' subscribed to topic 'cmd_pushing': timeout = 0.250000s, priority = 80 [ INFO] [1506000625.392758899]: Topic handler 'rotatory' subscribed to topic 'cmd_rotatory': timeout = 0.500000s, priority = 70 [ INFO] [1506000625.403104164]: Topic handler 'simulation' subscribed to topic 'cmd_sim': timeout = 0.500000s, priority = 1 [ INFO] [1506000625.416551219]: Topic handler 'pause_navigation' subscribed to topic 'twist_mux/locks/pause_navigation': timeout = None, priority = 101 [ INFO] [1506000625.426671491]: Topic handler 'pause_pushing' subscribed to topic 'twist_mux/locks/pause_pushing': timeout = None, priority = 91 [ INFO] [1506000625.447726858]: Topic handler 'pause_rotatory' subscribed to topic 'twist_mux/locks/pause_rotatory': timeout = None, priority = 81 [ INFO] [1506000625.458308308]: Topic handler 'pause_sim' subscribed to topic 'twist_mux/locks/pause_rotatory': timeout = None, priority = 1 [ERROR] [1506000626.093273269]: failed to get mean for pad 6-hand (addr 0A) [ INFO] [1506000626.172874337]: RobotinoNode connected to Robotino. [ INFO] [1506000626.263839171]: No matching device found.... waiting for devices. Reason: std::string openni2_wrapper::OpenNI2Driver::resolveDeviceURI(const string&) @ /tmp/binarydeb/ros-indigo-openni2-camera-0.2.8/src/openni2_driver.cpp @ 642 : Invalid device number 1, there are 0 devices connected. [ INFO] [1506000626.377869698]: Waiting for model URDF on the ROS param server at location: //arm_controller/robot_description [ INFO] [1506000626.418549498]: pad 4-forearm-top (addr 0C) ready [ INFO] [1506000626.735025472]: pad 2-upperarm-top (addr 0E) ready [ INFO] [1506000626.907019198]: Connected to device with ID: H0904773 [ INFO] [1506000627.005914136]: Starting calibration. This will take up a few seconds. [ INFO] [1506000627.047208768]: pad 3-forearm-bottom (addr 10) ready [ INFO] [1506000627.359046115]: pad 1-upperarm-bottom (addr 12) ready [ INFO] [1506000627.360678379]: arm skin is ready [ERROR] [1506000627.360745449]: Airskin is damaged [airskin-4] process has finished cleanly log file: /home/squirrel/.ros/log/668f2dfc-9ec6-11e7-bfb3-00190f153f00/airskin-4.log Found 0 motors Motors started. [ INFO] [1506000629.048363903]: SquirrelHWInterface ready. Intializing loop... Looping... [ INFO] [1506000629.264148836]: No matching device found.... waiting for devices. Reason: std::string openni2_wrapper::OpenNI2Driver::resolveDeviceURI(const string&) @ /tmp/binarydeb/ros-indigo-openni2-camera-0.2.8/src/openni2_driver.cpp @ 642 : Invalid device number 1, there are 0 devices connected. [arm_controller/squirrel_control_node-27] process has died [pid 15544, exit code -11, cmd /home/squirrel/catkin_ws/devel/lib/squirrel_control/squirrel_hw_main name:=squirrel_control_node log:=/home/squirrel/.ros/log/668f2dfc-9ec6-11e7-bfb3-00190f153f00/arm_controller-squirrel_control_node-27.log]. log file: /home/squirrel/.ros/log/668f2dfc-9ec6-11e7-bfb3-00190f153f00/arm_controller-squirrel_control_node-27.log [arm_controller/squirrel_control_node-27] restarting process process[arm_controller/squirrel_control_node-27]: started with pid [16057] [ INFO] [1506000630.097855518]: Calibration finished. Latency is: -0.0815 [ INFO] [1506000630.371139385]: Waiting for model URDF on the ROS param server at location: //arm_controller/robot_description [ INFO] [1506000630.421700191]: Streaming data. [ INFO] [1506000632.264417616]: No matching device found.... waiting for devices. Reason: std::string openni2_wrapper::OpenNI2Driver::resolveDeviceURI(const string&) @ /tmp/binarydeb/ros-indigo-openni2-camera-0.2.8/src/openni2_driver.cpp @ 642 : Invalid device number 1, there are 0 devices connected. Found 0 motors Motors started. [ INFO] [1506000633.043999195]: SquirrelHWInterface ready. Intializing loop... Looping... Traceback (most recent call last): File "/opt/ros/indigo/lib/controller_manager/controller_manager", line 63, in controller_manager_interface.load_controller(c) File "/opt/ros/indigo/lib/python2.7/dist-packages/controller_manager/controller_manager_interface.py", line 66, in load_controller resp = s.call(LoadControllerRequest(name)) File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 505, in call raise ServiceException("unable to connect to service: %s"%e) rospy.service.ServiceException: unable to connect to service: [Errno 104] Connection reset by peer [arm_controller/squirrel_control_node-27] process has died [pid 16057, exit code -11, cmd /home/squirrel/catkin_ws/devel/lib/squirrel_control/squirrel_hw_main name:=squirrel_control_node log:=/home/squirrel/.ros/log/668f2dfc-9ec6-11e7-bfb3-00190f153f00/arm_controller-squirrel_control_node-27.log]. log file: /home/squirrel/.ros/log/668f2dfc-9ec6-11e7-bfb3-00190f153f00/arm_controller-squirrel_control_node-27.log [arm_controller/squirrel_control_node-27] restarting process process[arm_controller/squirrel_control_node-27]: started with pid [16160] [arm_controller/ros_control_controller_manager-28] process has died [pid 15550, exit code 1, cmd /opt/ros/indigo/lib/controller_manager/controller_manager spawn joint_state_controller joint_trajectory_controller __name:=ros_control_controller_manager __log:=/home/squirrel/.ros/log/668f2dfc-9ec6-11e7-bfb3-00190f153f00/arm_controller-ros_control_controller_manager-28.log]. log file: /home/squirrel/.ros/log/668f2dfc-9ec6-11e7-bfb3-00190f153f00/arm_controller-ros_control_controller_manager-28.log [ INFO] [1506000634.384639821]: Waiting for model URDF on the ROS param server at location: //arm_controller/robot_description [ INFO] [1506000635.264679997]: No matching device found.... waiting for devices. Reason: std::string openni2_wrapper::OpenNI2Driver::resolveDeviceURI(const string&) @ /tmp/binarydeb/ros-indigo-openni2-camera-0.2.8/src/openni2_driver.cpp @ 642 : Invalid device number 1, there are 0 devices connected. Found 0 motors Motors started. [ INFO] [1506000637.057122026]: SquirrelHWInterface ready. Intializing loop...`

After that I killed it. What am I missing here? Thanks