webカメラ
①まずubuntoでwebカメラを使えるようにしておく。
下記コマンドで接続したカメラが認識できるかを確認する。できた場合は接続したカメラの情報が出て来る
lsusb
②cheese Webcam Applicationをインストールする
sudo apt-get install cheese
③カメラを試す前にwebカメラの使用権限を設定する
sudo usermod -a -G video $USER
cat /etc/group | grep video
④cheeseコマンドでカメラを起動できたらubuntuのwebカメラ設定完了。これでROSのwebカメラも認識できるようになるはず。
cheese
⑤ROSのWebカメラ駆動用aptインストール
sudo apt-get install ros-noetic-usb-cam
sudo apt install ros-noetic-image-view
ターミナル1
roscore
ターミナル2
roslaunch usb_cam usb_cam_node.launch
カメラビュー
rosrun image_view image_view image:=/usb_cam/image_raw
usb_cam.launchファイル
<launch>
<node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
<param name="video_device" value="/dev/video1" />
<param name="image_width" value="640" />
<param name="image_height" value="480" />
<param name="pixel_format" value="yuyv" />
<param name="camera_frame_id" value="usb_cam" />
<param name="io_method" value="mmap"/>
</node>
</launch>
rqtで見てみる
rqt_image_view
※MicrosoftのLifeCam Studioを使う且つVirtualBox環境の場合はUSB3.0に設定しないと画像がうまく表示されない。USB2.0で設定した場合はカメラデバイス情報は表示できるけど、イメージが真っ暗になる。USBの転送速度の問題らしい。
freenect_camera(Kinect xbox360)
ドライバーなどのインストール
https://aibegins.net/2020/11/22/give-your-next-robot-3d-vision-kinect-v1-with-ros-noetic/
kinectをロボットに実装するxacro例
<?xml version="1.0"?>
<robot name="mrobot" xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:include filename="$(find mrobot_description)/urdf/mrobot_body.urdf.xacro" />
<!-- Kinectインクルート -->
<xacro:include filename="$(find mrobot_description)/urdf/kinect.xacro" />
<!-- Kinect取り付け位置 -->
<xacro:property name="kinect_offset_x" value="-0.06" />
<xacro:property name="kinect_offset_y" value="0" />
<xacro:property name="kinect_offset_z" value="0.035" />
<xacro:mrobot_body/>
<!-- Kinectパラメータ -->
<joint name="kinect_frame_joint" type="fixed">
<origin xyz="${kinect_offset_x} ${kinect_offset_y} ${kinect_offset_z}" rpy="0 0 0" />
<parent link="plate_2_link"/>
<child link="camera_link"/>
</joint>
<xacro:kinect_camera prefix="camera"/>
</robot>
ベースのrobotベースは別のxacroで定義必要だが、上記xacroをrunするとこんな感じ。これで後センサーを使った画像認識した状態で自立走行の作りを始められるね。
rplidar
sudo apt-get install ros-noetic-rplidar-ros
コネクトRplidarUSB、接続状況を確認する
lsusb
※下記エラー発生する場合、対処方法にて試す
Error,Cannot bind to the specified port /dev/ttyUSB0.
これは権限の問題
sudo gpasswd --add * dialout
*はユーザー名を入れること
lidar test(注意:RasPiの電流は大体1.5A以下だが、センサーは1.5A消費するものが多いため、電源を分けた方がいいと思う)
rosrun rplidar_ros rplidarNode
rostopic list
rostopic echo /scan
memo:usb情報を確認するコマンド
lsusb