Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

ROS

ROS2 Controlをためす その3:Classic Gazeboと連動する

ROS

実際のところ ros2 launch ros2_control_demo_example_9 rrbot_gazebo_classic.launch.py gui:=trueros2 topic pub /forward_position_controller/commands std_msgs/msg/Float64MultiArray "data: - 0.5 - 0.5"ros2 topic echo /joint_statesros2 topic ech…

ROS2 Controlをためす その2:デモ環境をためす

ROS

実際のところ 前回のvcstoolsでやる方法であれば、そのままdemoリポジトリが構築されてるので $ sudo apt-get install -y ros-${ROS_DISTRO}-joint-state-publisher-gui ros-${ROS_DISTRO}-rviz2$ cd ~/ros2_ws $ ros2 launch ros2_control_demo_example_1 r…

複数多種のリポジトリを引っ張らないといけないとき、vcstoolが使えるかもしれない

ROSプロジェクトなど、各所に散らばっているリポジトリを一々手で入力してるとミスする可能性が増えてきます。 そんな時、vcstoolが使えるかもしれません 実際のところ $ pip install -U vcstool 標準入力からいれる こんなファイルがあったとして $ echo ro…

ROS2 Controlをためす その1:環境構築

ROS

ROS2でハードウェアを抽象化して制御則の見通しをよくするのに使います。 実際のところ 前提条件 Ubuntu 22.04LTS ROS2 humble 作業ディレクトリ "~/dev_ws" 導入 cd ~/dev_ws/これをvcstoolという楽しいコマンドで $ vcs import --input https://raw.github…

ROS2でtopicを読もうとしたら" requesting incompatible QoS. No messages will be sent to it."とか言われたとき

ROS

ROS2では通信品質QoSの設定があり、設定が適切でないと通信できません 実際のところ rclpyでlidarからスキャンデータを取得し処理して別建てtopicに流すという処理を書いてたところエラーがlidarの方のプロセスでは [ydlidar_ros2_driver_node-1] [WARN] [16…

YDLiDAR X4の一番近い距離についてROS2 humbleのtopicとして流す

実際のところ import rclpy from rclpy.node import Node from rclpy.qos import QoSProfile, ReliabilityPolicy from sensor_msgs.msg import LaserScan from std_msgs.msg import Float32 class ClosestDistancePublisher(Node): def __init__(self): supe…

Gazebo Fortressとrviz2の

ROS

実際のところ ros2 run ros_ign_bridge parameter_bridge /lidar2@sensor_msgs/msg/LaserScan[ignition.msgs.LaserScan --ros-args -r /lidar2:=/laser_scan rviz2 「map」が初期値であるFixed Frameに「vehicle_blue/lidar_link/gpu_lidar」と書き換える左…

Gazebo Fortressで模擬ロボットを操縦してみる

ROS

Ignition Gazebo……あらためGazeboのLTS版であるGazebo Fortressの操作をしてみます。 実際のところ ”-v 4”はエラーの表示レベル設定で多めに表示するようなオプションです。 $ ign gazebo -v 4 -r visualize_lidar.sdfROS2を立ち上げてない状態でも、IGNに由…

ROS2 humbleにGazebo Fortressの環境を構築

ROS

貧弱な計算資源下でロボット開発をやっていた手前、Gazeboは高嶺の花でした そんな私も色々あって現環境にGazebo導入を試みるも……上手くいかず 技術調査を進めていくと、そもそも公式が「Classic gazebo」などと自ら旧式である事を宣っている始末。 最新リリ…

base環境で組んだROS2 humbleにrviz2を入れる

ROS

ros2-baseで作った環境に、rvizを入れる必要が出てきました。 前にも最小構成で入れたUbuntuにX serverを入れた莫迦な事をやったことがありましたね……。 実際のところ $ cd ~/dev_ws/src $ git clone https://github.com/ros2/rviz.git -b humble $ rosdep i…

YDLIDARシリーズで"Error, cannot retreive YDLidar health code: ffffffff"などと怒られる場合、baudrateがあってない可能性

ROS

ROS2 humbleでYDLIDAR X4を動かそうとしたところ、 ”Error, cannot retreive YDLidar health code: ffffffff" などとエラーが。 どうも、パラメータの一部を取得できていないようです。 実際のところ ためしにydlidar_ros2_driver/paramsをみると、launchフ…

ROS2 humbleでYDLIDAR X4をつかう

ROS

実際のところ SDK まず先にSDKを導入 今回Python用のインターフェイスは使わないので簡易的な方法で sudo apt install cmake pkg-configgit clone https://github.com/YDLIDAR/YDLidar-SDK.git mkdir -p YDLidar-SDK/build cd YDLidar-SDK/build cmake .. ma…

ROS2でrosboardをつかう

ROS

shuzo-kino.hateblo.jp でやった、ROSのtopicをブラウザで確認できるrosboardをROS2用にビルドしてみます 前回は簡易インストールだったので、今回はちゃんとビルドしてみます 実際のところ sudo pip3 install tornado simplejpeg$ cd ~/dev_ws/src $ git cl…

ROS2のlaunchファイルを用意する

実際のところ $ cd ~/dev_ws/src $ mkdir -p rpi_cpu_temp/launch $ touch rpi_cpu_temp/launch/cpu_temp_launch.py ROS1ではXMLだった気がしますが……ROS2からlaunchファイルはpython風の記法が使えるようになったそうで cpu_temp_launch.py from launch imp…

rclpyでROS2 paramsを使ってみる

以前つくったcpu温度をtopicで配信するcpu_tempの応用として、 nodeの挙動にパラメータを与える「ROS2 params」の実験をしてみます 適切に使えばビミョーな値の変更で毎回ビルドを変更しなくてよくなります 実際のところ 前提 shuzo-kino.hateblo.jp をベー…

rclpyでRaspberry Pi 4BのCPU温度を積算するActionを実装する

動作状態や途中介入を実現できるActionもやってみる事にしました 簡単化のため、CPU温度を積み上げる様式にします 実際のところ actionのビルド $ cd ~/dev_ws $ ros2 pkg create --build-type ament_cmake cpu_temp_action_msgs $ mkdir cpu_temp_action_ms…

rclpyでttyUSB0を経由してM5stackにテキストを送り込むserviceを書く

段々内容が入り組んできましたが…… rclpyでttyUSB0を経由してM5stackにテキストを送り込むserviceを書いてみます これが出来たら、もうあとはカメラやサウンドデバイスみたいな事例しかないんでは 実際のところ サービス定義の作成 まずはサービスの定義ファ…

rclpyでROS2のtopicの挙動を標準実装のmsgをつかって書いてみる

前回の続きで、今度はtopicをやります データの垂れ流しに向いた形式で、3D可視化ツールのrvizやシミュレーション環境のgazeboなんかで状態の取得に使われています 今回は実装のお試しということで、Raspberry Pi 4BのCPU温度の積算を通知するようにしてみま…

rclpyでROS2のserviceの挙動と独自srvを書いてみる

serviceはtopicと違い送受信に確認がされるので確実に伝えたい情報に使います 自作serviceの事件のため、まずはRaspberry PI 4BのGPIOをオンオフするROS serviceをpython3で実装してみます 実際のところ 必要なパッケージのインストール: Raspberry Pi上でGP…

ROS2 humble on RasPi4B で AgileX tracer mini を動かす その3:キーボードで操作する

ROS

実際のところ 準備 素の作業をしていれば入っているハズですが $ sudo apt install ros-$ROS_DISTRO-teleop-twist-keyboard 実行 $ ros2 run teleop_twist_keyboard teleop_twist_keyboardデフォでは speed 0.5 turn 1.0 と結構ラフに動くので、適宜調整しま…

ROS2 humble on RasPi4B で AgileX tracer mini を動かす その2:前進と旋回

ROS

実際のところ canを使えるようにする $ cd ~/dev_ws/src/ugv_sdk/scripts/ $ bash bringup_can2usb_500k.bash launch $ ros2 launch tracer_base tracer_mini_base.launch.py 動かす 自動車型のステアリング構造なので真横には移動できませんcmd_vekに与える…

ROS2 humble on RasPi4B で AgileX tracer mini を動かす その1:環境構築

ROS

実際のところ 必要なパッケージ類の追加 $ sudo apt-get update $ sudo apt-get install build-essential git cmake libasio-dev ビルド 以下、ROS2作業ディレクトリをdev_wsとしてやっていきます $ mkdir -p ~/dev_ws/src $ cd ~/dev_ws/src $ git clone ht…

rclpyでRealsense D435から点群をとってOpen3Dで描画

せっかく点群も取れるので、そちらも試してみることに 実際のところ $ pip install plotly $ pip install open3dimport numpy as np import rclpy from sensor_msgs.msg import PointCloud2 from sensor_msgs import point_cloud2 import plotly.express as …

rclpyで画像にArUcoマーカーの情報をつけて別トピックとして出してみる

rclpyでROS2のsensor/Imageトピックから画像を取得し透かしを入れて別トピックとして配信する - Bye Bye Moore と ROS2 hubmle環境にArUcoマーカーの認識をつける - Bye Bye Moore の内容を統合し、特定のIDをもつArUcoの姿勢情報を再配信画像の右上に表示し…

rclpyでROS2のsensor/Imageトピックから画像を取得し透かしを入れて別トピックとして配信する

実際のところ ROSの画像形式とOpenCVの画像形式を変換できる cv_bridgeを使います import rclpy from rclpy.node import Node from sensor_msgs.msg import Image import cv2 import cv_bridge class WatermarkNode(Node): def __init__(self): super().__in…

ROS2 humble環境でimage_publisherをつかい固定画像/動画を表示させる

ROS

image_pipelineのサブパッケージであるimage_publisherはROS2のトピックとして画像/動画を配信する機能を提供します。 センサーが用意できないときとか、センサー立ち上げ前の待機画面なんかでも使えるかもしれませんね。 実際のところ ros2 run image_pipel…

ROS2 hubmle環境にArUcoマーカーの認識をつける

ROS

実際のところ JMU-ROBOTICS-VIVAさんのros2_arucoを使用します 環境構築 キャリブレーションを行った上でost.yamlファイルを適切な場所においておく ビルド rosdepで何故か入らないので sudo apt-get install ros-humble-tf-transformationsさらに、OpenCV p…

ROS2 humble環境でimage_pipelineのcamera_calibrationをつかう

ROS

実際のところ $ pip list | grep setup colcon-python-setup-py 0.2.8 setuptools 59.6.0$ pip install setuptools==58.2.0$ pip list | grep setup colcon-python-setup-py 0.2.8 setuptools 58.2.0今回使うのはrealsenseなので、カメラは"/color"を指定 si…

image_pipeline をROS2 humble環境にいれる

ROS

実際のところ $ cd dev_ws/src $ git clone https://github.com/ros-perception/image_pipeline.git -b humble $ cd ..$ rosdep install -i --from-path src --rosdistro $ROS_DISTRO --skip-keys=librealsense2 -y$ colcon build --packages-skip realsense…

Ubuntu 22.04LTS on RasPi 4B な ROS2 humble環境にrealsense2-cameraをいれる

実際のところ 前提 ROS2 humbleの環境構築が済んでいる shuzo-kino.hateblo.jp 作業 $ sudo apt install ros-humble-realsense2-*作業スペースがdev_wsの場合 $ cd ~/dev_ws/src $ git clone https://github.com/IntelRealSense/realsense-ros.git -b ros2-d…