Giter Club home page Giter Club logo

crane_x7_ros's People

Contributors

gbiggs avatar kuwamai avatar nomumu avatar rt-corp avatar shotaak avatar tiryoh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crane_x7_ros's Issues

demo.launchのargument名を変更する

demo.launch の argument fake_execution はシンプルでよいと思いますが入力時に補完が効かないので、例えば sim などもう少し短くてわかりやすい名称に変更してもよいと思います。

ROS2への対応

ROS2への対応予定はありますか。
多くの機械学習モデルがPython3系で公開されているので、ROS2で利用できるとありがたいです。

PIDゲインをプリセットした後、gripperが動かなくなる

preset_reconfigure.pyを使用して、PIDゲインをプリセットした。
その後、MoveGroupCommanderを使ってgripperを動かそうとしたが、gripperが動かない。
以下のようなWARNINGが表示される。

実行したノード側

[ INFO] [1549266826.331669047]: ABORTED: Solution found but controller failed during execution

MoveGroup側

[ INFO] [1549266878.110681061]: Combined planning and execution request received for MoveGroup action. Forwarding to planning and execution pipeline.
[ INFO] [1549266878.110724622]: Planning attempt 1 of at most 1
[ INFO] [1549266878.110957243]: Planner configuration 'gripper' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed.
[ INFO] [1549266878.111047362]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1549266878.122025542]: RRTConnect: Created 5 states (2 start + 3 goal)
[ INFO] [1549266878.122045365]: Solution found in 0.011030 seconds
[ INFO] [1549266878.129828240]: SimpleSetup: Path simplification took 0.007764 seconds and changed from 4 to 2 states
[ WARN] [1549266878.569546134]: Controller handle /crane_x7/gripper_controller reports status ABORTED
[ INFO] [1549266878.569578106]: Completed trajectory execution with status ABORTED ...

また、preset_reconfigure.pyのコールバックにsleepを入れると、プリセット後もgripperが動くようになった。

    def preset_no_callback(self, no):
        joint_no = 0
        for conf in self.reconfigure:
            conf["client"].update_configuration( {"position_p_gain":self.preset_list[no.data][joint_no]["p_gain"],"position_i_gain":self.preset_list[no.data][joint_no]["i_gain"],"position_d_gain":self.preset_list[no.data][joint_no]["d_gain"]} )
            joint_no = joint_no + 1
+           rospy.sleep(0.1)

ハードウェア情報が古い

制限角度や重量、重心位置などのハードウェア情報が古いので最新データに更新した方が良い。

warning on building crane_x7_msgs

CMake Warning at /home/ubuntu/catkin_ws/build/crane_x7_ros/crane_x7_msgs/cmake/crane_x7_msgs-genmsg.cmake:3 (message):
  Invoking generate_messages() without having added any message or service
  file before.

  You should either add add_message_files() and/or add_service_files() calls
  or remove the invocation of generate_messages().
Call Stack (most recent call first):
  /opt/ros/kinetic/share/genmsg/cmake/genmsg-extras.cmake:307 (include)
  crane_x7_ros/crane_x7_msgs/CMakeLists.txt:10 (generate_messages)

パッケージのinstallに対応する

'crane_x7_control'、'crane_x7_description'がパッケージのインストール操作に対応できていないので、'CMakeLists.txt'を適切に修正する必要がある。
installの動作確認を実施した時に他の漏れもあれば対応する。

display.launch が動かない

次のコマンドでdisplay.launchを実行しましたが、
エラーが表示され、モデルが正常に描画されませんでした。

$ roslaunch crane_x7_description display.launch

実行環境はUbuntu18.04、ROS Melodicです。

エラーログ

roslaunch crane_x7_description display.launch 
... logging to /home/shotaak/.ros/log/b8a8d610-4e0a-11ea-a521-b88584a3c7d9/roslaunch-shotaak-Alienware-Aurora-R7-12907.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.

xacro: in-order processing became default in ROS Melodic. You can drop the option.
Deprecated: xacro tag 'crane_x7' w/o 'xacro:' xml namespace prefix (will be forbidden in Noetic)
when processing file: /home/shotaak/catkin_ws/src/crane_x7_ros/crane_x7_description/urdf/crane_x7.urdf.xacro
Use the following command to fix incorrect tag usage:
find . -iname "*.xacro" | xargs sed -i 's#<\([/]\?\)\(if\|unless\|include\|arg\|property\|macro\|insert_block\)#<\1xacro:\2#g'

started roslaunch server http://shotaak-Alienware-Aurora-R7:44771/

SUMMARY
========

PARAMETERS
 * /rate: 10
 * /robot_description: <?xml version="1....
 * /rosdistro: melodic
 * /rosversion: 1.14.3
 * /source_list: ['joint_states_so...
 * /use_gui: True

NODES
  /
    joint_state_publisher (joint_state_publisher/joint_state_publisher)
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
    rviz (rviz/rviz)

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

setting /run_id to b8a8d610-4e0a-11ea-a521-b88584a3c7d9
process[rosout-1]: started with pid [12941]
started core service [/rosout]
process[joint_state_publisher-2]: started with pid [12944]
process[robot_state_publisher-3]: started with pid [12945]
process[rviz-4]: started with pid [12946]
[WARN] [1581561855.692786]: The 'use_gui' parameter was specified, which is deprecated.  We'll attempt to find and run the GUI, but if this fails you should install the 'joint_state_publisher_gui' package instead and run that.  This backwards compatibility option will be removed in Noetic.
[ERROR] [1581561855.693473]: Could not find the GUI, install the 'joint_state_publisher_gui' package
[joint_state_publisher-2] process has died [pid 12944, exit code 1, cmd /opt/ros/melodic/lib/joint_state_publisher/joint_state_publisher __name:=joint_state_publisher __log:=/home/shotaak/.ros/log/b8a8d610-4e0a-11ea-a521-b88584a3c7d9/joint_state_publisher-2.log].
log file: /home/shotaak/.ros/log/b8a8d610-4e0a-11ea-a521-b88584a3c7d9/joint_state_publisher-2*.log

スクリーンショット_2020-02-13_11-48-01

最大加速度の制限値が高すぎる

MoveIt!のjoint_limits.yamlで定義しているmax_acceleration設定がハードウェアに対応した値になっていない。最新のハードウェアに適した値に修正すべきである。

melodic対応

CRANE-X7のROSパッケージはどうやらmelodicでも動くようだが、アールティでエビデンスが取れてない。
正式にサポートを表明したいので、動作検証してkineticと異なる箇所があればbranchを分けて対応コードを公開したいと考えています。

USB未接続時にcrane_x7_controlを起動するとエラーが出ることがある

エラーが出る時と出ない時の差がまだわかっていませんが、USB未接続時にcrane_x7_controlを起動するとエラーが出る場合があります。

[PortHandlerLinux::SetupPort] Error opening serial port!
[ INFO] [1539416433.446369738]: SKIP SELF CHECK...
terminate called after throwing an instance of 'std::runtime_error'
  what():  Duration is out of dual 32-bit range
[INFO] [1539416433.581602]: Controller Spawner: Waiting for service controller_manager/load_controller
[INFO] [1539416433.582375]: Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [1539416433.583056]: Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] [1539416433.583743]: Loading controller: joint_state_controller
Traceback (most recent call last):
  File "/opt/ros/kinetic/lib/controller_manager/spawner", line 207, in <module>
    if __name__ == '__main__': main()
  File "/opt/ros/kinetic/lib/controller_manager/spawner", line 185, in main
    resp = load_controller(name)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 435, in __call__
    return self.call(*args, **kwds)
  File "/opt/ros/kinetic/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
[crane_x7/crane_x7_control-3] process has died [pid 13425, exit code -6, cmd /home/rt-user/catkin_ws/devel/lib/crane_x7_control/crane_x7_control __name:=crane_x7_control __log:=/home/rt-user/.ros/log/43a91a8e-cebb-11e8-a6f2-b46bfcb8910b/crane_x7-crane_x7_control-3.log].
log file: /home/rt-user/.ros/log/43a91a8e-cebb-11e8-a6f2-b46bfcb8910b/crane_x7-crane_x7_control-3*.log
[INFO] [1539416433.753274]: Shutting down spawner. Stopping and unloading controllers...
[INFO] [1539416433.753846]: Stopping all controllers...
[WARN] [1539416433.757798]: Controller Spawner error while taking down controllers: unable to connect to service: [Errno 111] Connection refused
[crane_x7/controller_manager-2] process has died [pid 13424, exit code 1, cmd /opt/ros/kinetic/lib/controller_manager/spawner joint_state_controller arm_controller gripper_controller __name:=controller_manager __log:=/home/rt-user/.ros/log/43a91a8e-cebb-11e8-a6f2-b46bfcb8910b/crane_x7-controller_manager-2.log].
log file: /home/rt-user/.ros/log/43a91a8e-cebb-11e8-a6f2-b46bfcb8910b/crane_x7-controller_manager-2*.log

詳細なログ

$ roslaunch crane_x7_control crane_x7_control.launch 
... logging to /home/rt-user/.ros/log/43a91a8e-cebb-11e8-a6f2-b46bfcb8910b/roslaunch-rt-user-zenbookpro-13380.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://192.168.10.128:41827/

SUMMARY
========

PARAMETERS
 * /crane_x7/arm_controller/joints: ['crane_x7_should...
 * /crane_x7/arm_controller/publish_rate: 250
 * /crane_x7/arm_controller/type: position_controll...
 * /crane_x7/crane_x7_control/arm_controller/joints: ['crane_x7_should...
 * /crane_x7/crane_x7_control/arm_controller/publish_rate: 250
 * /crane_x7/crane_x7_control/arm_controller/type: position_controll...
 * /crane_x7/crane_x7_control/dynamixel_port/baud_rate: 3000000
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_gripper_finger_a_joint/center: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_gripper_finger_a_joint/effort_const: 1.79
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_gripper_finger_a_joint/home: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_gripper_finger_a_joint/id: 9
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_gripper_finger_a_joint/mode: 3
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_lower_arm_fixed_part_joint/center: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_lower_arm_fixed_part_joint/effort_const: 1.79
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_lower_arm_fixed_part_joint/home: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_lower_arm_fixed_part_joint/id: 6
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_lower_arm_fixed_part_joint/mode: 3
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_lower_arm_revolute_part_joint/center: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_lower_arm_revolute_part_joint/effort_const: 1.79
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_lower_arm_revolute_part_joint/home: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_lower_arm_revolute_part_joint/id: 7
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_lower_arm_revolute_part_joint/mode: 3
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_shoulder_fixed_part_pan_joint/center: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_shoulder_fixed_part_pan_joint/effort_const: 1.79
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_shoulder_fixed_part_pan_joint/home: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_shoulder_fixed_part_pan_joint/id: 2
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_shoulder_fixed_part_pan_joint/mode: 3
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_shoulder_revolute_part_tilt_joint/center: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_shoulder_revolute_part_tilt_joint/effort_const: 2.79
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_shoulder_revolute_part_tilt_joint/home: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_shoulder_revolute_part_tilt_joint/id: 3
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_shoulder_revolute_part_tilt_joint/mode: 3
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_upper_arm_revolute_part_rotate_joint/center: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_upper_arm_revolute_part_rotate_joint/effort_const: 1.79
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_upper_arm_revolute_part_rotate_joint/home: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_upper_arm_revolute_part_rotate_joint/id: 5
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_upper_arm_revolute_part_rotate_joint/mode: 3
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_upper_arm_revolute_part_twist_joint/center: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_upper_arm_revolute_part_twist_joint/effort_const: 1.79
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_upper_arm_revolute_part_twist_joint/home: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_upper_arm_revolute_part_twist_joint/id: 4
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_upper_arm_revolute_part_twist_joint/mode: 3
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_wrist_joint/center: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_wrist_joint/effort_const: 1.79
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_wrist_joint/home: 2048
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_wrist_joint/id: 8
 * /crane_x7/crane_x7_control/dynamixel_port/crane_x7_wrist_joint/mode: 3
 * /crane_x7/crane_x7_control/dynamixel_port/joints: ['crane_x7_should...
 * /crane_x7/crane_x7_control/dynamixel_port/port_name: /dev/ttyUSB0
 * /crane_x7/crane_x7_control/gripper_controller/joint: crane_x7_gripper_...
 * /crane_x7/crane_x7_control/gripper_controller/publish_rate: 250
 * /crane_x7/crane_x7_control/gripper_controller/type: position_controll...
 * /crane_x7/crane_x7_control/joint_limits/arm_joint1/has_acceleration_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint1/has_effort_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint1/has_jerk_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint1/has_position_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint1/has_velocity_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint1/max_effort: 4.0
 * /crane_x7/crane_x7_control/joint_limits/arm_joint1/max_position: 1.5707963268
 * /crane_x7/crane_x7_control/joint_limits/arm_joint1/max_velocity: 5.969211435
 * /crane_x7/crane_x7_control/joint_limits/arm_joint1/min_position: -1.5707963268
 * /crane_x7/crane_x7_control/joint_limits/arm_joint2/has_acceleration_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint2/has_effort_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint2/has_jerk_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint2/has_position_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint2/has_velocity_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint2/max_effort: 4.0
 * /crane_x7/crane_x7_control/joint_limits/arm_joint2/max_position: 0.0
 * /crane_x7/crane_x7_control/joint_limits/arm_joint2/max_velocity: 5.969211435
 * /crane_x7/crane_x7_control/joint_limits/arm_joint2/min_position: -1.5707963268
 * /crane_x7/crane_x7_control/joint_limits/arm_joint3/has_acceleration_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint3/has_effort_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint3/has_jerk_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint3/has_position_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint3/has_velocity_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint3/max_effort: 4.0
 * /crane_x7/crane_x7_control/joint_limits/arm_joint3/max_position: 1.5707963268
 * /crane_x7/crane_x7_control/joint_limits/arm_joint3/max_velocity: 5.969211435
 * /crane_x7/crane_x7_control/joint_limits/arm_joint3/min_position: -1.5707963268
 * /crane_x7/crane_x7_control/joint_limits/arm_joint4/has_acceleration_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint4/has_effort_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint4/has_jerk_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint4/has_position_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint4/has_velocity_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint4/max_effort: 4.0
 * /crane_x7/crane_x7_control/joint_limits/arm_joint4/max_position: 2.726204
 * /crane_x7/crane_x7_control/joint_limits/arm_joint4/max_velocity: 5.969211435
 * /crane_x7/crane_x7_control/joint_limits/arm_joint4/min_position: 0.0
 * /crane_x7/crane_x7_control/joint_limits/arm_joint5/has_acceleration_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint5/has_effort_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint5/has_jerk_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint5/has_position_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint5/has_velocity_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint5/max_effort: 4.0
 * /crane_x7/crane_x7_control/joint_limits/arm_joint5/max_position: 1.5707963268
 * /crane_x7/crane_x7_control/joint_limits/arm_joint5/max_velocity: 5.969211435
 * /crane_x7/crane_x7_control/joint_limits/arm_joint5/min_position: -1.5707963268
 * /crane_x7/crane_x7_control/joint_limits/arm_joint6/has_acceleration_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint6/has_effort_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint6/has_jerk_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint6/has_position_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint6/has_velocity_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint6/max_effort: 4.0
 * /crane_x7/crane_x7_control/joint_limits/arm_joint6/max_position: 1.047196
 * /crane_x7/crane_x7_control/joint_limits/arm_joint6/max_velocity: 5.969211435
 * /crane_x7/crane_x7_control/joint_limits/arm_joint6/min_position: -2.094395
 * /crane_x7/crane_x7_control/joint_limits/arm_joint7/has_acceleration_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint7/has_effort_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint7/has_jerk_limits: False
 * /crane_x7/crane_x7_control/joint_limits/arm_joint7/has_position_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint7/has_velocity_limits: True
 * /crane_x7/crane_x7_control/joint_limits/arm_joint7/max_effort: 4.0
 * /crane_x7/crane_x7_control/joint_limits/arm_joint7/max_position: 2.96706
 * /crane_x7/crane_x7_control/joint_limits/arm_joint7/max_velocity: 5.969211435
 * /crane_x7/crane_x7_control/joint_limits/arm_joint7/min_position: -2.96706
 * /crane_x7/crane_x7_control/joint_limits/hand_joint1/has_acceleration_limits: False
 * /crane_x7/crane_x7_control/joint_limits/hand_joint1/has_effort_limits: True
 * /crane_x7/crane_x7_control/joint_limits/hand_joint1/has_jerk_limits: False
 * /crane_x7/crane_x7_control/joint_limits/hand_joint1/has_position_limits: True
 * /crane_x7/crane_x7_control/joint_limits/hand_joint1/has_velocity_limits: True
 * /crane_x7/crane_x7_control/joint_limits/hand_joint1/max_effort: 4.0
 * /crane_x7/crane_x7_control/joint_limits/hand_joint1/max_position: 0.523598776
 * /crane_x7/crane_x7_control/joint_limits/hand_joint1/max_velocity: 5.969211435
 * /crane_x7/crane_x7_control/joint_limits/hand_joint1/min_position: 0.0
 * /crane_x7/crane_x7_control/joint_state_controller/publish_rate: 250
 * /crane_x7/crane_x7_control/joint_state_controller/type: joint_state_contr...
 * /crane_x7/dynamixel_port/baud_rate: 3000000
 * /crane_x7/dynamixel_port/crane_x7_gripper_finger_a_joint/center: 2048
 * /crane_x7/dynamixel_port/crane_x7_gripper_finger_a_joint/effort_const: 1.79
 * /crane_x7/dynamixel_port/crane_x7_gripper_finger_a_joint/home: 2048
 * /crane_x7/dynamixel_port/crane_x7_gripper_finger_a_joint/id: 9
 * /crane_x7/dynamixel_port/crane_x7_gripper_finger_a_joint/mode: 3
 * /crane_x7/dynamixel_port/crane_x7_lower_arm_fixed_part_joint/center: 2048
 * /crane_x7/dynamixel_port/crane_x7_lower_arm_fixed_part_joint/effort_const: 1.79
 * /crane_x7/dynamixel_port/crane_x7_lower_arm_fixed_part_joint/home: 2048
 * /crane_x7/dynamixel_port/crane_x7_lower_arm_fixed_part_joint/id: 6
 * /crane_x7/dynamixel_port/crane_x7_lower_arm_fixed_part_joint/mode: 3
 * /crane_x7/dynamixel_port/crane_x7_lower_arm_revolute_part_joint/center: 2048
 * /crane_x7/dynamixel_port/crane_x7_lower_arm_revolute_part_joint/effort_const: 1.79
 * /crane_x7/dynamixel_port/crane_x7_lower_arm_revolute_part_joint/home: 2048
 * /crane_x7/dynamixel_port/crane_x7_lower_arm_revolute_part_joint/id: 7
 * /crane_x7/dynamixel_port/crane_x7_lower_arm_revolute_part_joint/mode: 3
 * /crane_x7/dynamixel_port/crane_x7_shoulder_fixed_part_pan_joint/center: 2048
 * /crane_x7/dynamixel_port/crane_x7_shoulder_fixed_part_pan_joint/effort_const: 1.79
 * /crane_x7/dynamixel_port/crane_x7_shoulder_fixed_part_pan_joint/home: 2048
 * /crane_x7/dynamixel_port/crane_x7_shoulder_fixed_part_pan_joint/id: 2
 * /crane_x7/dynamixel_port/crane_x7_shoulder_fixed_part_pan_joint/mode: 3
 * /crane_x7/dynamixel_port/crane_x7_shoulder_revolute_part_tilt_joint/center: 2048
 * /crane_x7/dynamixel_port/crane_x7_shoulder_revolute_part_tilt_joint/effort_const: 2.79
 * /crane_x7/dynamixel_port/crane_x7_shoulder_revolute_part_tilt_joint/home: 2048
 * /crane_x7/dynamixel_port/crane_x7_shoulder_revolute_part_tilt_joint/id: 3
 * /crane_x7/dynamixel_port/crane_x7_shoulder_revolute_part_tilt_joint/mode: 3
 * /crane_x7/dynamixel_port/crane_x7_upper_arm_revolute_part_rotate_joint/center: 2048
 * /crane_x7/dynamixel_port/crane_x7_upper_arm_revolute_part_rotate_joint/effort_const: 1.79
 * /crane_x7/dynamixel_port/crane_x7_upper_arm_revolute_part_rotate_joint/home: 2048
 * /crane_x7/dynamixel_port/crane_x7_upper_arm_revolute_part_rotate_joint/id: 5
 * /crane_x7/dynamixel_port/crane_x7_upper_arm_revolute_part_rotate_joint/mode: 3
 * /crane_x7/dynamixel_port/crane_x7_upper_arm_revolute_part_twist_joint/center: 2048
 * /crane_x7/dynamixel_port/crane_x7_upper_arm_revolute_part_twist_joint/effort_const: 1.79
 * /crane_x7/dynamixel_port/crane_x7_upper_arm_revolute_part_twist_joint/home: 2048
 * /crane_x7/dynamixel_port/crane_x7_upper_arm_revolute_part_twist_joint/id: 4
 * /crane_x7/dynamixel_port/crane_x7_upper_arm_revolute_part_twist_joint/mode: 3
 * /crane_x7/dynamixel_port/crane_x7_wrist_joint/center: 2048
 * /crane_x7/dynamixel_port/crane_x7_wrist_joint/effort_const: 1.79
 * /crane_x7/dynamixel_port/crane_x7_wrist_joint/home: 2048
 * /crane_x7/dynamixel_port/crane_x7_wrist_joint/id: 8
 * /crane_x7/dynamixel_port/crane_x7_wrist_joint/mode: 3
 * /crane_x7/dynamixel_port/joints: ['crane_x7_should...
 * /crane_x7/dynamixel_port/port_name: /dev/ttyUSB0
 * /crane_x7/gripper_controller/joint: crane_x7_gripper_...
 * /crane_x7/gripper_controller/publish_rate: 250
 * /crane_x7/gripper_controller/type: position_controll...
 * /crane_x7/joint_limits/arm_joint1/has_acceleration_limits: False
 * /crane_x7/joint_limits/arm_joint1/has_effort_limits: True
 * /crane_x7/joint_limits/arm_joint1/has_jerk_limits: False
 * /crane_x7/joint_limits/arm_joint1/has_position_limits: True
 * /crane_x7/joint_limits/arm_joint1/has_velocity_limits: True
 * /crane_x7/joint_limits/arm_joint1/max_effort: 4.0
 * /crane_x7/joint_limits/arm_joint1/max_position: 1.5707963268
 * /crane_x7/joint_limits/arm_joint1/max_velocity: 5.969211435
 * /crane_x7/joint_limits/arm_joint1/min_position: -1.5707963268
 * /crane_x7/joint_limits/arm_joint2/has_acceleration_limits: False
 * /crane_x7/joint_limits/arm_joint2/has_effort_limits: True
 * /crane_x7/joint_limits/arm_joint2/has_jerk_limits: False
 * /crane_x7/joint_limits/arm_joint2/has_position_limits: True
 * /crane_x7/joint_limits/arm_joint2/has_velocity_limits: True
 * /crane_x7/joint_limits/arm_joint2/max_effort: 4.0
 * /crane_x7/joint_limits/arm_joint2/max_position: 0.0
 * /crane_x7/joint_limits/arm_joint2/max_velocity: 5.969211435
 * /crane_x7/joint_limits/arm_joint2/min_position: -1.5707963268
 * /crane_x7/joint_limits/arm_joint3/has_acceleration_limits: False
 * /crane_x7/joint_limits/arm_joint3/has_effort_limits: True
 * /crane_x7/joint_limits/arm_joint3/has_jerk_limits: False
 * /crane_x7/joint_limits/arm_joint3/has_position_limits: True
 * /crane_x7/joint_limits/arm_joint3/has_velocity_limits: True
 * /crane_x7/joint_limits/arm_joint3/max_effort: 4.0
 * /crane_x7/joint_limits/arm_joint3/max_position: 1.5707963268
 * /crane_x7/joint_limits/arm_joint3/max_velocity: 5.969211435
 * /crane_x7/joint_limits/arm_joint3/min_position: -1.5707963268
 * /crane_x7/joint_limits/arm_joint4/has_acceleration_limits: False
 * /crane_x7/joint_limits/arm_joint4/has_effort_limits: True
 * /crane_x7/joint_limits/arm_joint4/has_jerk_limits: False
 * /crane_x7/joint_limits/arm_joint4/has_position_limits: True
 * /crane_x7/joint_limits/arm_joint4/has_velocity_limits: True
 * /crane_x7/joint_limits/arm_joint4/max_effort: 4.0
 * /crane_x7/joint_limits/arm_joint4/max_position: 2.726204
 * /crane_x7/joint_limits/arm_joint4/max_velocity: 5.969211435
 * /crane_x7/joint_limits/arm_joint4/min_position: 0.0
 * /crane_x7/joint_limits/arm_joint5/has_acceleration_limits: False
 * /crane_x7/joint_limits/arm_joint5/has_effort_limits: True
 * /crane_x7/joint_limits/arm_joint5/has_jerk_limits: False
 * /crane_x7/joint_limits/arm_joint5/has_position_limits: True
 * /crane_x7/joint_limits/arm_joint5/has_velocity_limits: True
 * /crane_x7/joint_limits/arm_joint5/max_effort: 4.0
 * /crane_x7/joint_limits/arm_joint5/max_position: 1.5707963268
 * /crane_x7/joint_limits/arm_joint5/max_velocity: 5.969211435
 * /crane_x7/joint_limits/arm_joint5/min_position: -1.5707963268
 * /crane_x7/joint_limits/arm_joint6/has_acceleration_limits: False
 * /crane_x7/joint_limits/arm_joint6/has_effort_limits: True
 * /crane_x7/joint_limits/arm_joint6/has_jerk_limits: False
 * /crane_x7/joint_limits/arm_joint6/has_position_limits: True
 * /crane_x7/joint_limits/arm_joint6/has_velocity_limits: True
 * /crane_x7/joint_limits/arm_joint6/max_effort: 4.0
 * /crane_x7/joint_limits/arm_joint6/max_position: 1.047196
 * /crane_x7/joint_limits/arm_joint6/max_velocity: 5.969211435
 * /crane_x7/joint_limits/arm_joint6/min_position: -2.094395
 * /crane_x7/joint_limits/arm_joint7/has_acceleration_limits: False
 * /crane_x7/joint_limits/arm_joint7/has_effort_limits: True
 * /crane_x7/joint_limits/arm_joint7/has_jerk_limits: False
 * /crane_x7/joint_limits/arm_joint7/has_position_limits: True
 * /crane_x7/joint_limits/arm_joint7/has_velocity_limits: True
 * /crane_x7/joint_limits/arm_joint7/max_effort: 4.0
 * /crane_x7/joint_limits/arm_joint7/max_position: 2.96706
 * /crane_x7/joint_limits/arm_joint7/max_velocity: 5.969211435
 * /crane_x7/joint_limits/arm_joint7/min_position: -2.96706
 * /crane_x7/joint_limits/hand_joint1/has_acceleration_limits: False
 * /crane_x7/joint_limits/hand_joint1/has_effort_limits: True
 * /crane_x7/joint_limits/hand_joint1/has_jerk_limits: False
 * /crane_x7/joint_limits/hand_joint1/has_position_limits: True
 * /crane_x7/joint_limits/hand_joint1/has_velocity_limits: True
 * /crane_x7/joint_limits/hand_joint1/max_effort: 4.0
 * /crane_x7/joint_limits/hand_joint1/max_position: 0.523598776
 * /crane_x7/joint_limits/hand_joint1/max_velocity: 5.969211435
 * /crane_x7/joint_limits/hand_joint1/min_position: 0.0
 * /crane_x7/joint_state_controller/publish_rate: 250
 * /crane_x7/joint_state_controller/type: joint_state_contr...
 * /robot_description: <?xml version="1....
 * /rosdistro: kinetic
 * /rosversion: 1.12.14

NODES
  /crane_x7/
    controller_manager (controller_manager/spawner)
    crane_x7_control (crane_x7_control/crane_x7_control)
    robot_state_publisher (robot_state_publisher/robot_state_publisher)

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

setting /run_id to 43a91a8e-cebb-11e8-a6f2-b46bfcb8910b
process[rosout-1]: started with pid [13406]
started core service [/rosout]
process[crane_x7/controller_manager-2]: started with pid [13424]
process[crane_x7/crane_x7_control-3]: started with pid [13425]
process[crane_x7/robot_state_publisher-4]: started with pid [13426]
[PortHandlerLinux::SetupPort] Error opening serial port!
[ INFO] [1539416433.446369738]: SKIP SELF CHECK...
terminate called after throwing an instance of 'std::runtime_error'
  what():  Duration is out of dual 32-bit range
[INFO] [1539416433.581602]: Controller Spawner: Waiting for service controller_manager/load_controller
[INFO] [1539416433.582375]: Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [1539416433.583056]: Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] [1539416433.583743]: Loading controller: joint_state_controller
Traceback (most recent call last):
  File "/opt/ros/kinetic/lib/controller_manager/spawner", line 207, in <module>
    if __name__ == '__main__': main()
  File "/opt/ros/kinetic/lib/controller_manager/spawner", line 185, in main
    resp = load_controller(name)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 435, in __call__
    return self.call(*args, **kwds)
  File "/opt/ros/kinetic/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
[crane_x7/crane_x7_control-3] process has died [pid 13425, exit code -6, cmd /home/rt-user/catkin_ws/devel/lib/crane_x7_control/crane_x7_control __name:=crane_x7_control __log:=/home/rt-user/.ros/log/43a91a8e-cebb-11e8-a6f2-b46bfcb8910b/crane_x7-crane_x7_control-3.log].
log file: /home/rt-user/.ros/log/43a91a8e-cebb-11e8-a6f2-b46bfcb8910b/crane_x7-crane_x7_control-3*.log
[INFO] [1539416433.753274]: Shutting down spawner. Stopping and unloading controllers...
[INFO] [1539416433.753846]: Stopping all controllers...
[WARN] [1539416433.757798]: Controller Spawner error while taking down controllers: unable to connect to service: [Errno 111] Connection refused
[crane_x7/controller_manager-2] process has died [pid 13424, exit code 1, cmd /opt/ros/kinetic/lib/controller_manager/spawner joint_state_controller arm_controller gripper_controller __name:=controller_manager __log:=/home/rt-user/.ros/log/43a91a8e-cebb-11e8-a6f2-b46bfcb8910b/crane_x7-controller_manager-2.log].
log file: /home/rt-user/.ros/log/43a91a8e-cebb-11e8-a6f2-b46bfcb8910b/crane_x7-controller_manager-2*.log

Gazebo STLファイルのインポート

CRANE-X7のGazebo上でメッシュをインポートしようと思います。Model EditorでSTLをインポートしましたが、[import]を押してからの後操作が分かりません。ご教授お願い致します。

bringup/demo.launchの引数が、moveit_config/demo.launchに渡されていない

https://github.com/rt-net/crane_x7_ros/blob/master/crane_x7_bringup/launch/demo.launch にて

includeの中で引数を渡しているが、defaultで新たに宣言されている。

正しくはvalue="$(arg ***)" とすべき。

  <include file="$(find crane_x7_moveit_config)/launch/demo.launch">
    <arg name="db" default="$(arg db)" />
    <arg name="db_path" default="$(arg db_path)" />
    <arg name="debug" default="$(arg debug)" />
    <arg name="fake_execution" default="$(arg fake_execution)" />
    <arg name="use_gui" default="$(arg use_gui)" />
  </include>

controller起動時に実機が急に動くことがある

crane_x7_controlの起動時に実機の姿勢を読み込んだ後、トルクONまでの間に姿勢を変更すると、読み込んだ姿勢へ急に移動するため危ない。
急に移動すると危険なので処理の順番を変更するなどした方が良い。

Gazeboパッケージを追加したい

MoveIt!を使ったコーディングと動作確認は、現在の実装でも実機無しで実現可能だが、ロボット外部の物体をPick&Placeするなどアームを何かに作用させてシミュレーション学習するコンテンツが無い。
CRANE-X7をGazeboに対応させて、箱のモデルをPick&Placeするサンプルを追加したいと考えています。

No root/virtual joint specified in SRDF

[ INFO] [1539407738.974455785]: Loading robot model 'crane_x7'...
[ INFO] [1539407738.974480297]: No root/virtual joint specified in SRDF. Assuming fixed joint

TravisCIでのテストでエラーが発生している

現象

次のようなエラーが出てTravisCIでのテストに失敗しています。
https://travis-ci.com/rt-net/crane_x7_ros/builds/89108172

Extracting templates from packages: 100%
E: Unable to locate package ros-kinetic-moveit-planners-ompl
ERROR: the following rosdeps failed to install
  apt: command [apt-get install -y ros-kinetic-moveit-planners-ompl] failed

原因

現段階では.travis.ymlでのテスト対象のリモートリポジトリにros-shadow-fixedのみを設定しています。
このリポジトリは次期リリースのパッケージが公開されており、discourseでアナウンスされる「prepareing for kinetic sync」などはここのリポジトリ(ros-shadow-fixed)から通常の手順でセットアップするリポジトリ(ros)へsyncするということらしいです。
http://wiki.ros.org/ShadowRepository
アップデートが頻繁にあるパッケージでは、ビルドエラーが出てros-shadow-fixedにてパッケージが空になっているタイミングがあり、今回はそのエラーに遭遇しているようです。

参考:
jsk-enshu/robot-programming#233

対処方法

以下のようにテスト対象を変更しようと思います。

  • 変更前
    • ビルドテスト(結果に反映)
      • ROS: kinetic, リポジトリ: ros-shadow-fixed
    • ビルドテスト(テストのみでエラーは無視)
      • ROS: melodic, リポジトリ: ros-shadow-fixed
  • 変更後
    • ビルドテスト(結果に反映)
      • ROS: kinetic, リポジトリ: ros
    • ビルドテスト(テストのみでエラーは無視)
      • ROS: kinetic, リポジトリ: ros-shadow-fixed
      • ROS: melodic, リポジトリ: ros
      • ROS: melodic, リポジトリ: ros-shadow-fixed

RobotStateが更新されない

Robot State TopicがないためRobotStateが初期姿勢のまま更新されません。
47b40ebfake_executiontruefalse でそれぞれ試し、どちらもRobotStateが更新されないことを確認しました。
実機を動かす場合は、RobotStateが更新されてRviz上でロボットの状態を確認できた方が便利かもしれないと思いました。

Image from Gyazo

rosdep install error

rosdep install したときに ros/rosdistro に未定義のパッケージでエラーが出ます。
https://github.com/ros/rosdistro/tree/master/rosdep

dependencies から削除してみてどう影響が出るか確認します。

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
crane_x7_description: Cannot locate rosdep definition for [generate_distutils_setup]

crane_x7_controlがVC++でビルドエラーがでます。

crane_x7_contorl/include/crane_x7_control/joint_control.h の222行目:

 ST_JOINT_PARAM set_joint_param( ST_JOINT_PARAM set_param){ param = set_param; }

となっていますが、返り値が必要なのに、return分がありません。

ST_JOINT_PARAM set_joint_param( ST_JOINT_PARAM set_param){ param = set_param; return param;}

とするか

void set_joint_param( ST_JOINT_PARAM set_param){ param = set_param; }

とする必要があると思います。

また、crane_x7_contorl/src/dxlport_control.cpp の131行目:

/* packetHandlerはdeleteしないほうが良さそう*/

の最後の部分で 「う*/」を 「う */」のように空白を挿入しないと、文字コードの関係でVC++ではエラーになります。これはLinuxでは問題ないのですが、日本語をソースコードに入れる場合には、コンパイラによってはエラーとなりますので、

/* packetHandlerはdeleteしないほうが良さそう */

と修正をお願いいたします。

`crane_x7_control.yaml`が2回ロードされている

crane_x7_control.launchで設定ファイルのcrane_x7_control.yamlが2回含まれています。パラメータサーバでパラメータはネームスペースありとなしで重複します。

<rosparam file="$(find crane_x7_control)/config/crane_x7_control.yaml" command="load"/>

<rosparam file="$(find crane_x7_control)/config/crane_x7_control.yaml" command="load"/>

crane_x7_controlのREADMEを追加する

crane_x7_controlが備えている各機能について説明を追加する。
・サーボ状態(角度、温度、電流)のトピック配信について
・dynamic_reconfigureからの設定について
・通信ポートの変更方法について
・制御モードの切り替えについて

PIDゲインプリセットツールを追加する

ハンド部の重量が変化するとPIDの設定値を適した値に設定したくなるが、適切なツールが備わっていない。Sciurus17にはPIDゲインプリセットツールが実装されているので、これを移植した方が便利である。
(sciurus17_ros/sciurus17_control/scripts/preset_reconfigure.py)

world nameを"default" にしないと、gazeboが立ち上がらない。

/crane_x7_ros/crane_x7_gazebo/worlds/table.worldファイル内のworld nameを"CRANE-X7 with Table"から"default"に変更しないと、gazeboが立ち上がらないです。
~/.gazebo/modelsにモデルがダウンロードされていることも確認しています。
開発環境のバージョンは下記となります。
OS: Ubuntu 18.04.4 LTS
ROS: Melodic Morenia 1.14.3
Gazebo: 9.0.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.