Bye Bye Moore

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

ROS

Jupyter Notebook から rclpy を読み出す実験 その3:スライダーやテキストボックスから値を取得しておくる

あまり使った事がなかったのですが、Jupyter NotebookにはスライダーやテキストボックスのようなUI類もあるので、こいつから値をとってロボットアームの動作に反映するようなのを作ってみます。 実際のところ import ipywidgets as widgets from IPython.dis…

Jupyter Notebook から rclpy を読み出す実験 その2:ロボットアーム UFactory Lite6の操作実験

rclpyからUFactory Lite6を操作してみます 実際のところ import rclpy from rclpy.node import Node from xarm_msgs.srv import SetInt16ById, SetInt16, MoveCartesian class XArmServiceClient(Node): def __init__(self): super().__init__('xarm_service…

Jupyter Notebook から rclpy を読み出す実験 その1:環境構築

少しパラメータを変えて実験したい場合に一々コマンドを叩くのも面倒になってきたので Jupyter Notebookからrclpyを呼び出して少し実験を楽にする方法を試してみました 実際のところ 前提条件 Ubuntu 22 LTS mDNS構築済み 導入 $ sudo apt install jupyter-c…

Ubuntu 22LTS on RaspberryPi4B(8G)にxArm for ROS2 humble

Raspberry Pi 4B (8Gbyte) に Ubuntu 22.04 LTSの環境を組んだ状態で、そこに ROS2 humbleとxArm ROS2の環境を構築します。 実際のところ 前提 Raspberry Pi 4B (8Gbyte) Ubuntu 22.04 LTS (Raspberry Pi Imagerで書き込み) 作業 リポジトリをアップデート…

colcon buildでつくった環境の再導入

ROS

継ぎ足し継ぎ足しで訳が分からなくなった場合の対処方 実際のところ 基本的には、全部消してしまえば $ mv ~/dev_ws/ $ rm -r build install log環境変数が悪さをし" WARNING:colcon.colcon_ros.prefix_path.ament"などと言われる場合に備え、環境変数も消し…

rclpyでROS2のトピックを扱う その3:service

実際のところ 実践例として、xArm の ROS2 humble用パッケージのサービスをコールしてロボットアームを動かしてみます。 $ cd ~/dev_ws/ $ source install/setup.bash スクリプト import rclpy from rclpy.node import Node from xarm_msgs.srv import SetIn…

rclpyでROS2のトピックを扱う その3:Subscriber

ROS

実際のところ import rclpy from rclpy.node import Node from std_msgs.msg import String class MySubscriber(Node): def __init__(self): super().__init__('mysubscriber') self.subscription = self.create_subscription( String, 'topic_name', self.l…

rclpyでROS2のトピックを扱う その2:Publisher

ROS

実際のところ import rclpy from rclpy.node import Node from std_msgs.msg import String class MyPublisher(Node): def __init__(self): super().__init__('mypublisher') self.publisher_ = self.create_publisher(String, 'topic_name', 10) timer_peri…

rclpyでROS2のトピックを扱う その1:導入

ROS

実際のところ ドキュメント生成ライブラリのSphinxが推奨なので sudo apt install \ python3-sphinx \ python3-sphinx-autodoc-typehints \ python3-sphinx-rtd-theme 導入 ROS2の作業ディレクトリがros2_wsで、環境構築が終わっている場合 cd ~/ros2_ws/src…

ODYSSEY X86J4105864を初期化しUbuntu 22LTSとROS2 humbleを入れる

実際のところ USBストレージにubuntu 22 LTSの日本語版をいれるLive USB入れて 電源ボタン長押し + F7 ログイン後の処理 リモート環境の構築 $ sudo apt update $ sudo apt upgrade -y $ sudo apt install -y openssh-server avahi-daemon$ sudo systemctl s…

colcon buildで特定のパッケージが通らずビルドが進まないときは"packages-skip"が逃げ道になるかも

ROS

ROS2の環境を構築していたところ……なぜかrealsenseのgazebo用パッケージのビルドで失敗。 巻き込まれで他のパッケージもビルドできない事態に。 幸い、今回は使わないパッケージなのでコイツを明示的にスキップさせる事にしました。 実際のところ $ colcon b…

ROSでUSBカメラを使う その2:launchファイルを書く

ROS

shuzo-kino.hateblo.jp の続き。 launchファイルを書いて、それから実行してみます。 実際のところ ただ書くだけなのもナンなので、解像度とレートをさげてみます。 <launch> <node name="camera" pkg="usb_cam" type="usb_cam_node"> <param name="pixel_format" value="yuyv" /> <param name="image_width" value="320" /> </param></param></node></launch>

ROSでUSBカメラを使う その1:とりあえずROSRUNで動かす

ROS

実際のところ $ sudo apt install ros-${ROS_DISTRO}-usb-cam install ros-${ROS_DISTRO}-image-viewROSトピックの仕様上、MJPGではうまくデータ形式を取り扱えないそうなのでフォーマットはyuyvに形式を明示 デバイスはデフォでは /dev/video0です $ rosrun…

rosboardでブラウザ越しにROS

ROS

Are you looking for a web-based alternative to RVIZ for both ROS 1 and ROS 2? Check out ROSBoard, it has lots of great features and a slick user interface. https://t.co/Ibr7nSrQh1 pic.twitter.com/RwmrAllCVj— Open Robotics (@OpenRoboticsOrg…

rosdepで入れたモノの管理権限を変更する

ROS

rosdep installをrootでやってしまい、通常ユーザーで実行ができなくなってしまいました。 これを解消するサブコマンドとして、その名もfix-permissionsというのがあります。 実際のところ rootからubuntuに入れ替え、権限を弄る流れは以下の通り # cd ~/cat…

rosdepで入れたものを再インストールする

ROS

実際のところ 何らかの事情で導入済みのものを再インストールしなくてはならない場合、"--reinstall"のオプションをつけると上書きが可能です。 $ rosdep install --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y --reinstall 参考もと rosdep -s…

roslaunch: [ ] is neither a launch file in package [ ] nor is [ ] a launch file name ……なんて言われたら、環境変数にlaunchファイルが認識されていない可能性

ROS

ROSの新環境を準備中のこと。 roscoreをメインの端末で立ち上げ、併行して使っていた端末でroslaunchしようとしたところ、こんなエラーが。 roslaunch: [ ] is neither a launch file in package [ ] nor is [ ] a launch file name 何のことはなく、作業端…

ROSからM5stackにふれる その4:log

実際のところ #include <ros.h> #include <M5Stack.h> ros::NodeHandle nh; void setup() { // initialize the M5Stack object M5.begin(); M5.Power.begin(); nh.initNode(); } void loop() { //wait until you are actually connected while (!nh.connected()) { nh.spinOnce</m5stack.h></ros.h>…

ROSからM5stackにふれる その3:HelloWorldもといpublisher

実際のところ #include <ros.h> #include <std_msgs/String.h> #include <M5Stack.h> ros::NodeHandle nh; std_msgs::String str_msg; ros::Publisher chatter("chatter", &str_msg); char hello[10] = "hello ROS"; void setup() { // initialize the M5Stack object M5.begin(); M5.Power.begin(</m5stack.h></std_msgs/string.h></ros.h>…

ROSからM5stackにふれる その2:Lチカもといsubscriber

実際のところ #include <ros.h> #include <std_msgs/Empty.h> #include <M5Stack.h> ros::NodeHandle nh; bool flag = true; void messageCb( const std_msgs::Empty& toggle_msg){ if ( flag ) { M5.Lcd.fillScreen(WHITE); flag = false; } else { M5.Lcd.fillScreen(BLACK); flag = true; } } </m5stack.h></std_msgs/empty.h></ros.h>…

ROSからM5stackにふれる その1:環境構築

何やかんやで、即作りたいときには便利なM5stack こいつをROSと連携する方法を考えていきます。 実際のところ ROSにrosserial-arduinoの環境導入 sudo apt install ros-$ROS_DISTRO-rosserial sudo apt install ros-$ROS_DISTRO-rosserial-arduino cd catkin…

ROSでmsgファイルが無い等々と怒られたら、設定ファイルが読み込めてないだけかも

ROS

shuzo-kino.hateblo.jp と同じ症状ですが、出た場所が違ったのでメモ以前の記事と同様、設定ファイルの読み込みが上手くいかなかった為に 実際のところ $ rosservice call /xarm/move_line_tool [0,0,-50,0,0,0] 200 2000 0 0本来であればアームが動くのです…

xArmにROS環境をつくる その3:rospy経由でpythonから動かす

PythonでROSメッセージをおくる方法として、rospyの活用があります 実際のところ まず使うためのサービス名を把握 $ rosservice list /rosout/get_loggers /rosout/set_logger_level ・・・ /xarm/vacuum_gripper_set /xarm/velo_move_joint /xarm/velo_move…

xArmにROS環境をつくる その2:サービスを経由してxArmを動かす

ROS

実際のところ roslaunch $ YOURIP=192.168.1.230 $ roslaunch xarm_bringup xarm7_server.launch robot_ip:=$YOURIP 操作側端末の準備 サービス経由でロボットを動かす $ rosservice call /xarm/motion_ctrl 8 1 ret: 0 message: "motion enable, ret = 0"モ…

xArmにROS環境をつくる

ROS

xArmは中国深圳のUFactory社が出しているロボットアームです。 ユニバーサルロボティクス社のURシリーズと似た規模感、可動軸ながら、軽量安価という特徴があります。 実際のところ 環境 Ubuntu 20LTS on WSL ROS noetic 前準備 gazebo_ros_pkg、ros_control…

WSL上のROSがQtのプラグイン初期化ができない云々で怒り始めたら、DISPLAY変数を疑うといいかもしれない

ROS

実際のところ $ roslaunch xarm_description xarm7_rviz_display.launch ... process[rviz-4]: started with pid [8059] qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was f…

rosdepのオプション"rosdistro"で対象のDistroを絞って動かす

ROS

前の世代の作業環境でやってたけど、色々あって最新にしたい。 じゃぁ一個一個再インストとかでは流石に萎えますよね。 ROS公式もその辺りは把握しており、対応するオプションがあります。 実際のところ まず最新にアップデートし、checkサブコマンドにrosdi…

【読書メモ】プログラミングROS ―Pythonによるロボットアプリケーション開発 (オライリー・ジャパン)

プログラミングROS ―Pythonによるロボットアプリケーション開発 (オライリー・ジャパン)作者:Morgan Quigley,Brian Gerkey,William D. SmartオライリージャパンAmazonとある案件でお客先が読んでいたので、参照ついでに手に取ってみました。 rospyを使ってRO…

ビルドした筈のmsgsがrosmsgで出てこない場合、catkinのsetupを再読み込みするといいかもしれない

ROS

実際のところ --------------------------------------------------------------- [build] Found '38' packages in 0.0 seconds. [build] Package table is up to date. Starting >>> unitree_legged_msgs Finished <<< unitree_legged_msgs [ 14.2 seconds …

ROSのパッケージビルドツールcatkin(とても紛らわしい)

ROS

単独でパッケージビルドしたかったがcatkin_makeだと魔界記法めいていてコワイ 参考もと $ sudo apt install python-catkin-toolscatkin_makeしたものがあると、エラーを吐きます。 せっかくなので、イチから作った方が早いでしょう。 単独でやるときは $ ca…