Skip to content

Repository to hold a starter react + amphion/zethus project which loads a robot from a ros workspace

License

Notifications You must be signed in to change notification settings

RocketfarmAS/rocketfarm-starter

 
 

Repository files navigation

This project was bootstrapped with Create React App.

Prerequisites

The project has the following dependencies

  • It assumes you have a ros-melodic or kinectic environment setup. Link
  • It assumes you have moveit and its associated rviz components installed Link
    sudo apt-get install ros-melodic-moveit 
  • For the robots you want to simulate in the viz, make sure you have the moveit support packages installed Link
    sudo apt-get install ros-$ROS_DISTRO-universal-robot

Note:

universal_robot doesn't have a melodic release. You can use the kinetic-devel branch of their github repo and build it from source in your workspace

cd <<YOUR ROS_WORKSPACE>>/src
git clone https://github.com/ros-industrial/universal_robot.git
catkin build
  • rosbridge_server installed
sudo apt-get install ros-melodic-rosbridge-suite 
  • Working knowledge of roslaunch/moveit

Steps to use this codebase

  1. Launch a moveit + rviz environment
  • This loads the robot into robot_description parameter
  • It initializes an empty planning scene.
  • Also initializes robot joint state nodes
  • We additionally launch a rosbridge_server
#For ABB irb1200_5_90
roslaunch abb_irb1200_5_90_moveit_config demo.launch 
roslaunch rosbridge_server rosbridge_websocket.launch 

or

#For UR3
roslaunch ur3_moveit_config demo.launch
roslaunch rosbridge_server rosbridge_websocket.launch 
  1. Copy the support/description packages to the public folder of this webapp. support>description package for a robot is the package with the urdf & meshes. We have included the ur description and an abb description for quicker testing. This is needed for the webapp to respove and reference the correct files when loading meshes

  2. Clone the ui repo & Install the node dependencies

git clone https://github.com/wiresurfer/rocketfarm-starter.git
cd rocketfarm-starter
npm install
npm run start
  1. launch the browser. http://localhost:3000

  2. Bonus: If you use rviz to plan an execute to a new pose, you should be able to see the webui Robot move too.

  3. Loading scene objects For this starter program we have included a collada [.dae] file based scene loader using CusomPlanningScene.js To try this out Go to rviz > Motion Planning > Scene Objects > Import Files Navigate to public / conveyor / conveyor.dae Once imported, adjust the position and rotation of the conveyor as per your liking. Once done, press "Publish Scene"

You should see the conveyor appear in the webapp. This will not work with other dae files unless you add them to the public folder with the convention folderName/folderName.dae

If you change the position in the rviz world, or add new scene objects, these will appear or change in the webapp too. PS: This is a very rudimentary version of scene management but should help you hit the ground running.

Implementation Note:

  1. We have the websocket port hardcoded to localhost:9090. adjust this if you have changed your rosbridge launch config. App.js
  2. As this is a refactor from our internal application, we haven't yet implemented graceful disconnection & reconnection logic.
  3. In production the description package, is hosted by a separate backend service. Its not shipped as part of the frontend application. We have hosted the meshes out of the public folder of the react app for an easy dev environment for rocketfarm

Available Scripts

In the project directory, you can run:

yarn start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

yarn test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

yarn build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.
Your app is ready to be deployed!

See the section about deployment for more information.

yarn eject

Note: this is a one-way operation. Once you eject, you can’t go back!

If you aren’t satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.

You don’t have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.

Learn More

You can learn more in the Create React App documentation.

To learn React, check out the React documentation.

Code Splitting

This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting

Analyzing the Bundle Size

This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size

Making a Progressive Web App

This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app

Advanced Configuration

This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration

Deployment

This section has moved here: https://facebook.github.io/create-react-app/docs/deployment

yarn build fails to minify

This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify

About

Repository to hold a starter react + amphion/zethus project which loads a robot from a ros workspace

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 80.4%
  • CMake 12.7%
  • HTML 4.9%
  • CSS 2.0%