how to code something このページをアンテナに追加 RSSフィード

2016-11-29

ArduinoでROSを使う(rosserial)→Ubuntuのみで利用可能

rosserialを使うためにはroslib(Arduinoライブラリ)を~/sketchbook/libraries/ 以下に作成する必要がある
コマンドラインで行う

$ sudo apt-get install ros-kinetic-rosserial ros-kinetic-rosserial-arduino
$ cd ~/sketchbook/libraries
$ rosrun rosserial_arduino make_libraries.py .

これでArduinoへのインストールが完了した

Arduinoを起動する

$ sudo apt-get install arduino
$ arduino &

roslibがExampleの中に出現する
f:id:seinzumtode:20170314124907p:image

$ roscore #忘れてた!!
$ rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0
$ rostopic pub /led std_msgs/Bool true
$ rostopic pub /led std_msgs/Bool false
$ rqt_graph

f:id:seinzumtode:20161129171524p:image


以下の.ino がテンプレートになりそう。

#include <ros.h>
#include <std_msgs/Bool.h>
#include <std_msgs/String.h>

ros::NodeHandle node;
std_msgs::String chat;
ros::Publisher pub("arduino",&chat);

void ledCallback(const std_msgs::Bool &is_led_on){
	if(is_led_on.data){
		digitalWrite(13,HIGH);
		chat.data = "led on!";
	} else {
		digitalWrite(13,LOW);
		chat.data = "led off.";
	}
	pub.publish(&chat);
}

ros::Subscriber<std_msgs::Bool> sub("led",&ledCallback);

void setup(){
	pinMode(13,OUTPUT);
	node.initNode();
	node.subscribe(sub);
	node.advertise(pub);
}

void loop(){
	node.spinOnce();
	delay(1);
}

Ubuntuターミナル上にて、
$ rostopic pub /led で/ledトピックにBool true/falseを設定する
$ rostopic echo /arduino で/arduinoトピックのString値をCallbackで取得できる

Arduino上ではspinOnce()を一定周期でポーリングする、というのがプログラミングの枠組みらしい

UR3をRviz&Gazebo上で表示

http://wiki.ros.org/ur_gazebo

$ sudo apt-get install \
  ros-indigo-ur-gazebo \
  ros-indigo-ur5-moveit-config \
  ros-indigo-ur-kinematics
$ roslaunch ur_gazebo ur3.launch

$ roslaunch ur3_moveit_config ur3_moveit_planning_execution.launch sim:=true

$ roslaunch ur3_moveit_config moveit_rviz.launch config:=true

f:id:seinzumtode:20161129130216p:image

UR3をRViz上でスライダーで動かす

詳説ROSの11章を参考に

できると思ったらUniversalRobotはSRDFしか用意されてなくてURDFがない
SRDF→URDFコンバータとかないのかな?
srdf+yaml=>urdfで復元できそうだけど

URDF, SDF, SRDFの違い
http://wiki.ros.org/ROS/Patterns/RobotModelling

f:id:seinzumtode:20161129122048p:image

UR3+ROSのデモローンチファイルを動かす

cd ~/catkin_ws/src
git clone github.com/ros-industrial/universal_robot
cd ~/catkin_ws
catkin_make

roslaunch ur3_moveit_config demo.launch

f:id:seinzumtode:20161129115754p:image

2016-02-06

2016-01-28

ROSまとめ

自律ロボット開発にROSを使うべきいくつかの理由
http://myenigma.hatenablog.com/entry/20130208/1360324464

世界で一番簡単なtfの使い方 : tf=座標変換(transform)ライブラリ
http://myenigma.hatenablog.com/entry/20130210/1360491625

ROS開発者マニュアル(日本語訳)
http://myenigma.hatenablog.com/entry/20131221/1387583310

ROSの新しいビルドシステムcatkinについて
http://myenigma.hatenablog.com/entry/20131229/1388320084

ROS C++ ソフトのデバック方法
http://myenigma.hatenablog.com/entry/20140107/1389099065

ROSにおけるUnit/Integration/Regression Test (日本語訳)
http://myenigma.hatenablog.com/entry/20140110/1389362208

ROS ソフトにおけるQAプロセス(日本語訳)
http://myenigma.hatenablog.com/entry/20140114/1389704699

ROS C++コード用テストライブラリgtestの使い方(日本語訳)
http://myenigma.hatenablog.com/entry/20140121/1390307154

ROSにおけるrqtを使用したGUIアプリの作成方法
http://myenigma.hatenablog.com/entry/20140330/1396182802