Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle robots with state machine #656

Merged
merged 10 commits into from
Jan 15, 2025

Conversation

tongtybj
Copy link
Collaborator

@tongtybj tongtybj commented Jan 12, 2025

What is this

Use Smach to control and navigate robot.

Details

  • Bacis tools: generalized robot interface (Interpretive Robot Interface #655) and smach_ros
  • Implement element motion (e.g., arming, takeoff, landing, goPos) with state machine: state_machine.py
  • Create simple demo for each robot based on state machine
  • Refactor the rostest with smach
  • Enable joy controller interference mode by pressing L1 and R1 simultanesouly. Please refer to here for more detail

Simple Demo

Usage: Example of DRAGON

$ roslaunch dragon bringup.launch real_machine:=false simulation:=true headless:=false
$ rostopic pub -1 /task_start std_msgs/Empty

The simple demo is integrated in the launch file: https://github.com/tongtybj/aerial_robot/blob/PR/state_machine/robots/dragon/launch/bringup.launch#L117

dragon_simple_demo.mp4

@tongtybj tongtybj changed the title Control robots with state machine Handle robots with state machine Jan 12, 2025
@tongtybj tongtybj requested a review from sugikazu75 January 15, 2025 01:15
@tongtybj tongtybj merged commit 7d4b347 into jsk-ros-pkg:master Jan 15, 2025
7 checks passed
tongtybj added a commit to tongtybj/aerial_robot that referenced this pull request Jan 27, 2025
* [RosTest] move the module of hovering check to "src" directory

* [Robot Interface] add python interpreted interface to support basic navigation motion, including joint control

* [Navigation] refactor the process for landing phase. Only accept new pose in hover state and also reset the target velocity in landing phase

* [Dragon][Naviagation] refactor the landing process by introducing a new state: pre_land_state

* [Dragon] remove unnecessary scripts

* [State Machine] implement basic classes based on ros smach, and also crate a simple demo script.

* [Demo] creates more simple demo based on smach and integrate the script in each bringup launch

* [RosTest] refactor the flight control test script to be based on the new state machine system

* [Demo] remove unnecessary old demo scripts

---------

Co-authored-by: Moju Zhao <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant