元高専生のロボット作り

元高専生のロボット作り

主にプログラミング, 電子系について書きます。たまに機械系もやります。メモ代わりの記事ばっか書きます

ROSのメモ

環境はWindowsVirtualBoxでUbuntu18.04
もちろんmelodic

ROSのインストールはroswikiのとおり

そのあとgazeboを起動したらエラーがでた

$ gazebo
[Err] [REST.cc:205] Error in REST request

~/.ignition/fuel/config.yamlを編集する。

$ gedit ~/.ignition/fuel/config.yaml

以下の通り

# url: https://api.ignitionfuel.org
url: https://api.ignitionrobotics.org

display.launchを起動したらjoint-state-publisher-guiが入ってなかったのでインストール

$ sudo apt install ros-melodic-joint-state-publisher-gui

gazeboの読み込み中のエラー
gzclientまたはgzserverを開いている可能性がある、以下を実行してから再度gazeboを実行するとうまくいく

killall gzserver
killall gzclient

ros_controlで、ハードウェア側をVelocityJointInterfaceに設定していると、実行したときに以下のエラーが出る。
実行は成功するので支障はない。
エラーが発生するのは、RobotHWSimを初期化するときにrobot_ros_controlがpid_gainsをロードしようとするためらしい。

[ERROR] [1588774767.409015602, 0.084000000]: No p gain specified for pid.  Namespace: /my_robot/gazebo_ros_control/pid_gains/my_joint

また、EffortJointInterfaceに設定して再度実行、gazeboを起動したら以下のようにバラバラになってしまう。
pidゲインが大きいためらしい。
pidゲインを小さく設定しなおすとなおる。

f:id:sgrsn1711:20200508212657p:plain

coppeliarSimをrosで使いたい。
CMakeLists.txtを編集

LIBRARY DESTINATION libを追加

install(TARGETS simExtROSInterface 
    DESTINATION ${COPPELIASIM_PLUGINS_DIR}
    LIBRARY DESTINATION lib
)
sudo apt install xsltproc

xacroからsdfへの変換

rosrun xacro xacro --inorder robot.xacro > robot.urdf
gz sdf -p robot.urdf > robot.sdf



for i in $(ls /dev/); do $(lsusb -D $i); done