This project was bootstrapped with Create React App.
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
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
- 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
-
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
-
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
-
launch the browser. http://localhost:3000
-
Bonus: If you use rviz to plan an execute to a new pose, you should be able to see the webui Robot move too.
-
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.
- We have the websocket port hardcoded to localhost:9090. adjust this if you have changed your rosbridge launch config. App.js
- As this is a refactor from our internal application, we haven't yet implemented graceful disconnection & reconnection logic.
- 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
In the project directory, you can run:
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.
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
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.
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.
You can learn more in the Create React App documentation.
To learn React, check out the React documentation.
This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify