NASA_Challenge_[Barisyaz]_[Ingenuity Flight Simulator]#39
NASA_Challenge_[Barisyaz]_[Ingenuity Flight Simulator]#39BarisYazici wants to merge 3 commits intospace-ros:mainfrom
Conversation
6631108 to
8d4aa7d
Compare
mkhansenbot
left a comment
There was a problem hiding this comment.
Thanks for the submission, this looks very cool! However, I need you to follow our contribution guidelines and open a new issue for this demo (using our feature request template). Then update both the PR title and the commit message(s) to refer to that issue #. We require every commit to have an associated issue. Also, I've added a workflow to build the build.sh files automatically, so this must build successfully using your script.
|
Thank you for your feedback. I will update the PR based on your comments. I have some questions and suggestions: Feature SeparationI have implemented multiple features in this PR:
Would it make sense to separate these into individual issues and reference them in separate commits? Build Script and Docker ImageRegarding the build script, there's a potential issue with the current workflow. My script relies ‘openrobotics/space_robots_demo’ that comes as an artifact from the docker repo under the space-ros project. To address this, I have two questions:
|
Yes, please use the
There's no current plan to do that. For now, you can copy that folder into your workspace and build it. In fact, can you have your build script do that at build time for now? We plan to port that folder into this repo soon anyway, then we can update the build script. |
mkhansenbot
left a comment
There was a problem hiding this comment.
Thanks for adding the build.sh. This still needs a full review but I'm going to try to run the CI.
|
Okay I will update it with space-ros docker image. I haven’t pushed anything new yet. Could you also tell me if I should open multiple issues for multiple features or one issue listing multiple features? |
According to @mkhansenbot comment in #39 (comment)
|
8d4aa7d to
72b8d8e
Compare
mkhansenbot
left a comment
There was a problem hiding this comment.
Thanks for your submission, however this doesn't build in our CI, because you're relying on the 'space_robots' docker image, which you're not building. So there are two options:
- build on the space-ros:latest image only, pull in any assets you need from the space-ros/simulation repo
- Implement a multi-stage build where you first build the
space_robotsimage then you build yours on top of that
I recommend option 1 if possible, as the space_robots demo will be refactored and moved into this repo later, so it's preferable to remove that dependency if you can
…nd control fix: docker container support
11373e3 to
2310827
Compare
Thanks @mkhansenbot for the update. I updated the dockerfile to be based on space-ros public image and the build script. Workflow should hopefully work now. |
|
Re-running the build |
| source /home/spaceros-user/spaceros/install/setup.sh | ||
| source /opt/ros/humble/setup.sh | ||
| cd /home/spaceros-user/ingenuity_helicopter | ||
| colcon build --packages-select helicopter_flight_control helicopter_flight_simulation ingenuity_description ingenuity_bringup |
There was a problem hiding this comment.
Please move the colcon build into the Dockerfile so that we can ensure the build works correctly using CI
There was a problem hiding this comment.
I updated the Dockerfile with the colcon build command. Also adjusted the entrypoint.sh such that it directly start the launch file.
This still needs a full code review
|
Just as a heads-up: I gave a shot to use this PR in Jazzy. Needed a few tweaks (mainly changing ign->gz) but it seems to work great in Jazzy. Attached a video of testing it to move Ingenuity up and down and starting a dust storm. 2025_05_10_test_ingenuity_jazzy_hb.mp4Our tweaks are in our fork: https://github.com/traclabs/demos/tree/pr_39_ingenuity . In case this PR could use our tweaks, I am happy to send a PR to the original PR. |
That’s great @ana-GT. I am happy to hear this project is helpful for you. I guess this PR is currently stale. But it would be a good reference for the people looking for the Jazzy version. |
You are welcome, thanks for adding this robot to the demos repository. I updated our fork of your PR (this) and it works both in Docker and building it from source. I can move the drone up and down and in the XY plane at some extent (I don't have a controller yet for moving forward/backward/left/right with some accuracy). |
This project simulates the Ingenuity Mars Helicopter using Gazebo and ROS 2 in Space-ROS.
closes #67
Aim of this project is to develop tools to mimic the Martian environment as close as possible. This enables space robots to easily iterate over the development cycles. This is important especially for the aerial vehicles. Because the air is much thinner and the nature events are different. Having this in mind, I develop the Ingenuity Flight Simulator, calculating the lift and drag forces as close to the Martian atmosphere and gravity as possible. This could enable Nasa engineers to develop controllers that can react to the nature events or test flight controllers with sensor noise such as IMU, altimeter or Camera.
landing_e27e4Hjz.mp4
cyclic_Bx2v4jKU.mp4
dust-storm-collective_q6O5PUg9.mp4
graph TD A[User Input] -->|/alpha_c, /alpha_s| D[Flight Simulation Plugin] A -->|/desired_altitude| C[Flight Control Plugin] C -->|/angle_of_attack| D D -->|LIft/ Drag Forces & Torques| E[Gazebo Physics Engine] E -->|Physics Update| F[Ingenuity Model] F -->|State Feedback| E E -->|Model State| D D -->|Telemetry| G[Visualization] subgraph Gazebo Simulation E F end subgraph Gazebo Plugins C D end classDef userInput fill:#f9f,stroke:#333,stroke-width:2px; classDef gazebo fill:#cfc,stroke:#333,stroke-width:2px; classDef spaceROS fill:#fcf,stroke:#333,stroke-width:2px; classDef visualization fill:#ccf,stroke:#333,stroke-width:2px; class A userInput; class E,F gazebo; class C,D spaceROS; class G visual