Closed k-okada closed 2 years ago
すみません 遅くなりました
変更 #407 の目的はシミュレーションと実機のlaunchを共通化するためです (joystickの課題でgazeboとjoystickのlaunchを起動するとcmd_vel_renameのノード名が重複する)
これは/cmd_velの別名を消したいということではなくて, mobile_baseを出すパターン(旧gazebo):/cmd_vel → /mobile_base/commands/velocity から cmd_vel_muxを出すパターン(実機):/cmd_vel → /cmd_vel_mux/input/teleop に変更してgazeboと実機のrelayの流れを共通化したということです cmd_vel_muxへのrelayはjoystickのlaunchでやってくださいということです
やりたいこととしてはjoystickの課題でgazeboと実機でlaunchが起動して正常に動作すればよいだけなので以下は考えどころなんでしょうか...? a) 実機に合わせてcmd_vel_muxとした方がいいと思いましたが,今確かめたら実機もmobile_baseパターンで動く気がしてて,cmd_vel_muxが本当に必要なのか(試したときに複数のvelコマンドが出てないだけ?)が分からなくなってます...? cmd_vel_muxではなくmobile_baseに直接relayする方に合わせるのもあるかもしれません? b) 1日目演習資料の課題1のところには「cmd_velを使ってもいい」とあるところに「joystickを起動しろ」と書き忘れてたので,relayするlaunchは考えたほうがいい気もします?(ただし,その場合,turtlebot_bringup/minimalの方に入れるのは変なので,dxl_armed_turtlebot/minimal.launchみたいな演習用のminimalが必要になる?)
@kindsenior やりたいことの優先度としては
1) 実機もシミュ−ションも cmd_vel で動いてほしい 2) 実機もシミュレションも [turtleot](https://github.com/jsk-enshu/robot-programming/blob/master/dxl_armed_turtlebot/launch/turtlebot_joystick_teleop.launch が動いてほしい,ただし,別のlaunch fileファイルでもよい. 3) 実機とシミュレーションでできるだけファイルは共通化したい.
gazebo では...
/cmd_vel -> ("cmd_vel_renamer") -> /mobile_base/commands/velocity -> ("gazebo")
/cmd_vel -> ("cmd_vel_renamer") -> /cmd_vel_mux/input/teleop -> ("yocs_cmd_vel_mux/CmdVelMuxNodelet") -> /mobile_base/commands/velocity
/cmd_vel_mux/input/teleop_raw -> ("teleop_velocity_smoother") -> /cmd_vel_mux/input/teleop -> ("yocs_cmd_vel_mux/CmdVelMuxNodelet") -> /mobile_base/commands/velocity
/joy -> (turtlebot_telop_joystick) -> /teleop_velocity_smoother/raw_cmd_vel -> ("teleop_velocity_smoother") -> /cmd_vel_mux/input_teleop ...
だと理解したとして,
解としてはいろいろあって,
$(anon )
にしたら良いのでは,wstool update
なので,それがどのフォークのどのコミットかは隠蔽されている)/cmd_vel_mux/input/teleop
ではなく,/cmd_vel
を受け付けるようにする.https://github.com/turtlebot/turtlebot/commit/fc6f88856e88982ad35c1176e23b65e7761981f4などでしょうか.
ちなみに,#416, #417 の人はこの会話を見て自分で,この2行を追加してGazeboでできました,と言ってきていて,これはこれで素晴らしいんですが,もし次の演習までに実機用のなにかコードをrobot-programmingに追加したとして,その時にwstool update
としてくださいといっても,localに変更があるというエラーがでるはずです.で,そのときには,エラーに気づかず,新しい反映がないワークスペースで作業を進めて動かない,エラーに気づくけど,それを解決する方法がわからない,の2つの可能性があり,これは,問題がおきたときに,トラブルの発見からして難しいパターンになるとおもいます.
そう考えると理想的には何でも良いので動くPRをマージして,wstool update
してください,で解決するのが,greedyな評価関数として,結構有効だったりします.
実機もシミュ−ションも cmd_vel で動いてほしい
の前提は1つのlaunchを動かしたら,この状態にしたい,ということなので,もし,turtlebot_joystick_teleop.launch
を立ち上げればよいのでは?ということだったら,dxl_armed_turtlebot_gazebo.launchにこれをインクルードして,かつ,dxl_armed_turtlebot/minimal.launch にもこれを入れる形にするんだとおもいます.ただこの場合,演習の資料を遡って変更(つまりturtlebot_joystick_teleop.launch)を別途たちげるようにはしない)という変更が必要になるって,すくなくとも演習の時点で動いた資料を直すのは,混乱の元だと思うので,やっぱり,これ以外の作戦で,とにかく早めに, 現状,講義の宿題がそのまま動かない状況を修正したいです.
anonにするのがどちらか迷いましたが,とりあえずjoystickのrenamerをanonにしました 逆がいいなら直します これでどうでしょうか?
演習だけでなく授業の資料の資料も考えないといけないということを深く理解しました 申し訳ございません...
@kindsenior
407 の https://github.com/jsk-enshu/robot-programming/pull/407/files#diff-08e0e0faabe14a0737b8228dc366c0cdb979c4bba52880aa00c60c593ab195abL15-L16 で
/cmd_vel
を/mobile_base/commands/velocity
の別名として使うコードを消しているんだけど,これ必要かな?世の中的には
cmd_vel
が一般的で,teleop_twist_keyboard.py
もデフォルトこれなので,消す必要ないと思うんですがいかがでしょうか? もし,enshuロボットは,/mobile_base/commands/velocity
で行くんだということだとすると, https://github.com/jsk-enshu/robot-programming/blob/0c6f524d5cb296b1df2985dc127ada9e1e4793ad/dxl_armed_turtlebot/launch/enshu.perspective#L34-L37の部分を変更する必要があるかとおもいます. もしこれで良ければ,マージして,以下に善後策を伝えていただければと思います.
416 #417
%新しくコードを追加する前に Travisなり GithubAction なり使えるように戻すべきでした...