ROS
実際のところ $ ros2 topic hz /turtle1/pose average rate: 62.481 min: 0.015s max: 0.017s std dev: 0.00050s window: 64 average rate: 62.487 min: 0.015s max: 0.017s std dev: 0.00050s window: 127 average rate: 62.493 min: 0.015s max: 0.017s st…
rqt_graphはROSノードの可視化ツールの一つで、 ROSノードがどのように連携しているか確認したり、 そもそも関係性が適切か確認したりできます。 実際のところ 起動確認 ros-humble-desktopをぶち込んでいれば、素で入っているので $ rqt_graphとやると、空…
実際のところ $ gazebo --verbose「beer」を選択すると、モデルがでてきます 左クリックで配置です とりあえず、こんな調子で並べてみます 「Ctrl + S」で保存してみます。 参考もと Gazebo : Tutorial : Gazebo Components Gazebo : Tutorial : Building a …
ROS2とPythonで作って学ぶAIロボット入門 (KS理工学専門書)作者:出村公成,萩原良信,升谷保博,タンジェフリートゥチュアン講談社Amazon
ROS2から導入されたライフサイクルノードという機能をつかうと、 特定の条件下ですこ~しだけ稼働させたい激重センサーをハンドリングしたり、 メンテナンス時に一定時間ノードを止めるといった処理を一定の仕組みに則って書く事ができます。 実際のところ …
参考もと ROS QoS - Deadline, Liveliness, and Lifespan
ROS2からlaunchファイルがPythonで記述できるようになりました 各種拡張もimportで読めるようになったのですが……その中で、パラメータを扱うパッケージとしてLaunchConfigurationというのがあります 実際のところ my_pakageのmy_nodeに対し、my_argsを適用す…
実際のところ 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…
実際のところ 前回の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…
ROSプロジェクトなど、各所に散らばっているリポジトリを一々手で入力してるとミスする可能性が増えてきます。 そんな時、vcstoolが使えるかもしれません 実際のところ $ pip install -U vcstool 標準入力からいれる こんなファイルがあったとして $ echo ro…
ROS2でハードウェアを抽象化して制御則の見通しをよくするのに使います。 実際のところ 前提条件 Ubuntu 22.04LTS ROS2 humble 作業ディレクトリ "~/dev_ws" 導入 cd ~/dev_ws/これをvcstoolという楽しいコマンドで $ vcs import --input https://raw.github…
ROS2では通信品質QoSの設定があり、設定が適切でないと通信できません 実際のところ rclpyでlidarからスキャンデータを取得し処理して別建てtopicに流すという処理を書いてたところエラーがlidarの方のプロセスでは [ydlidar_ros2_driver_node-1] [WARN] [16…
実際のところ 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…
実際のところ 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」と書き換える左…
Ignition Gazebo……あらためGazeboのLTS版であるGazebo Fortressの操作をしてみます。 実際のところ ”-v 4”はエラーの表示レベル設定で多めに表示するようなオプションです。 $ ign gazebo -v 4 -r visualize_lidar.sdfROS2を立ち上げてない状態でも、IGNに由…
貧弱な計算資源下でロボット開発をやっていた手前、Gazeboは高嶺の花でした そんな私も色々あって現環境にGazebo導入を試みるも……上手くいかず 技術調査を進めていくと、そもそも公式が「Classic gazebo」などと自ら旧式である事を宣っている始末。 最新リリ…
ros2-baseで作った環境に、rvizを入れる必要が出てきました。 前にも最小構成で入れたUbuntuにX serverを入れた莫迦な事をやったことがありましたね……。 実際のところ $ cd ~/dev_ws/src $ git clone https://github.com/ros2/rviz.git -b humble $ rosdep i…
ROS2 humbleでYDLIDAR X4を動かそうとしたところ、 ”Error, cannot retreive YDLidar health code: ffffffff" などとエラーが。 どうも、パラメータの一部を取得できていないようです。 実際のところ ためしにydlidar_ros2_driver/paramsをみると、launchフ…
実際のところ 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…
shuzo-kino.hateblo.jp でやった、ROSのtopicをブラウザで確認できるrosboardをROS2用にビルドしてみます 前回は簡易インストールだったので、今回はちゃんとビルドしてみます 実際のところ sudo pip3 install tornado simplejpeg$ cd ~/dev_ws/src $ git cl…
実際のところ $ 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…
以前つくったcpu温度をtopicで配信するcpu_tempの応用として、 nodeの挙動にパラメータを与える「ROS2 params」の実験をしてみます 適切に使えばビミョーな値の変更で毎回ビルドを変更しなくてよくなります 実際のところ 前提 shuzo-kino.hateblo.jp をベー…
動作状態や途中介入を実現できる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を書いてみます これが出来たら、もうあとはカメラやサウンドデバイスみたいな事例しかないんでは 実際のところ サービス定義の作成 まずはサービスの定義ファ…
前回の続きで、今度はtopicをやります データの垂れ流しに向いた形式で、3D可視化ツールのrvizやシミュレーション環境のgazeboなんかで状態の取得に使われています 今回は実装のお試しということで、Raspberry Pi 4BのCPU温度の積算を通知するようにしてみま…
serviceはtopicと違い送受信に確認がされるので確実に伝えたい情報に使います 自作serviceの事件のため、まずはRaspberry PI 4BのGPIOをオンオフするROS serviceをpython3で実装してみます 実際のところ 必要なパッケージのインストール: Raspberry Pi上でGP…
実際のところ 準備 素の作業をしていれば入っているハズですが $ sudo apt install ros-$ROS_DISTRO-teleop-twist-keyboard 実行 $ ros2 run teleop_twist_keyboard teleop_twist_keyboardデフォでは speed 0.5 turn 1.0 と結構ラフに動くので、適宜調整しま…
実際のところ 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に与える…
実際のところ 必要なパッケージ類の追加 $ 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…
せっかく点群も取れるので、そちらも試してみることに 実際のところ $ 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 …