目次
導入
Ros 開発はロボット開発において不可欠な作業であり、言語は C++ または Python から選択できます。ツールに関しては、Windows システム、qtcreate、visual Studio、clion ほどカラフルにすることはできません。ros 環境のほとんどは ubuntu システムの下にあるため、IDE の使用は Linux 環境のみに限定されており、ここでは vscode を選択します。
前提
この記事は、ros 環境のインストールから vscode ツールの構築、コードの作成、コンパイル、デバッグまでをゼロから説明したものではありません。ここでの前提条件は、システムに ros-melodic-desktop-full がインストールされており、ros 関連のコマンドを実行できることです。 。
vscodeのインストール
まずvscodeをインストールし、公式アドレスを使用してダウンロードし、その後手動で国内アクセラレータに切り替えることを お勧めします。
ダウンロードをクリックした後、公式アドレスはダウンロードが非常に遅いため、ここではブラウザのダウンロードでダウンロード項目を直接見つけ、ダウンロードリンクをコピーし、ブラウザのアドレスバーに貼り付けて、国内のアドレスに変更します。
例えば:
ダウンロードした deb インストール ファイルは、dpkg -i xxx.deb を通じて直接インストールできます。
vscodeプラグインのインストール
プラグイン拡張機能 Extensions に ros と catkin-tools の 2 つのプラグインをインストールする必要があります。
ワークスペースの準備
mkdir -p roshelloworld/src
cd roshelloworld/src
catkin_init_workspace
cd ..
catkin_make
ここに catkin_init_workspace コマンド プロンプトがない場合は、環境の問題であることに注意してください。実際には、ros のインストール時にインストールされています。これを設定して実行する必要があります。
echo "source /opt/ros/melodic/setup.bash" >> /etc/profile
vscodeを開く
code .
現在コンパイルされているワークスペースで、コマンド ラインから vscode を開きます。
catkin パッケージを作成する
srcを右クリック→Catkinパッケージの作成
フォローアップ操作では、パッケージ名と依存関係名を入力する必要があります。ここでのパッケージ名は my_test_pkg で、依存関係は roscpp、rospy、および std_msgs です。
パッケージ構造は次のようになります。
オリジナルの roshelloworld/src にはさらに my_test_pkg が含まれており、my_test_pkg には src、CMakeLists.txt ファイルも含まれています。ここでの CMakeLists.txt は、roshelloworld の CMakeLists.txt とは異なります。後で my_test_pkg パッケージの CMakeLists.txt ファイルを変更します。
cppコードを書く
my_test_pkg/src ディレクトリに新しい my_test_pkg_node.cpp を作成し、次のようにコードを追加します。
#include <iostream>
#include <string>
#include <sstream>
#include "ros/ros.h"
#include "std_msgs/String.h"
using namespace std;
int main(int argc, char** argv)
{
ros::init(argc, argv, "talker");
ros::NodeHandle n;
ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
ros::Rate loop_rate(10);
int count = 0;
while(ros::ok())
{
std_msgs::String msg;
std::stringstream ss;
ss << "hello,world" << count;
msg.data = ss.str();
ROS_INFO("%s", msg.data.c_str());
chatter_pub.publish(msg);
ros::spinOnce();
loop_rate.sleep();
count++;
}
return 0;
}
このコードは、/chatter トピックを公開し、10 ミリ秒ごとに hello, world + count を送信します。後でテストする場合は、/chatter トピックをサブスクライブして、受信したメッセージを確認できます。
CMakeLists.txt を変更します。
include_directories(
include
${catkin_INCLUDE_DIRS}
)
add_executable(${PROJECT_NAME}_node src/my_test_pkg_node.cpp)
target_link_libraries(${PROJECT_NAME}_node
${catkin_LIBRARIES}
)
これらの設定は CMakeLists.txt で利用でき、対応するコメントを開くだけです。
コンパイル
コマンドラインで catkin_make を実行します
走る
ros サービスを開始する
roscore
トピックを聞く
rostopic echo /chatter
ロステストを開始する
rosrun my_test_pkg my_test_pkg_node
vscode+ros開発環境の紹介はこれで終わりですが、デバッグせずに他の人のコードをそのままコピーしました。