Giter VIP home page Giter VIP logo

varun-software's People

Contributors

agjayant avatar anupriy97 avatar harshv834 avatar mayankm96 avatar pkhrag avatar prannayk avatar shibhansh avatar shikherverma avatar siddsax avatar soumye avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

varun-software's Issues

launch files: write launch files for pid callibration

launch files represents the mode in which we will run code. Ideally we should not need to run nodes ourself. Right now we have 2 set of launch files. One for launching everything with gazebo and one with hardware_layer. But now we have a third case where we would need to run some specific nodes for callibration of pid (on gazebo and on hardware) so I propose we write a new set of launch files which would start hardware layer and gazebo with topic remapping. meaning that the topics from sensors will be renames to topics we use to tell motion nodes what is the current position. Like /varun/sensors/pressure_sensor/depth should be remapped to /zDistance during callibration so that upward node pid can be callibrated using pressure sensor data. similarly for /varun/sensors/imu/yaw should be mapped to /yaw. So we can have launch file in motion_commons which launches motion_nodes.launch along with rqt_reconfig and launches one of hardware_nodes_pid.launch or debug_nodes_pid.launch. Where xyz_pid.launch are the respective launch files with topic remapping.

(infrastructure) add udev rules

add udev rules specific to hardware products so that we can access them on a fixed tty. like imu could be accessed at /dev/navstik. Also add it to setup script so it is added in all systems. Remove hardcoded path to hardware like imu code currently has a PATH file which has the path to imu which needs to be removed. .

(task_handler_layer) Add on-off switch to IP nodes

@siddsax to control IP nodes from task handlers, we directly use system(rosrun ...). But we want to run all the nodes (all ip nodes and task handlers) in parallel so we need to add a switch that will turn on and off the ip nodes. It has already been done in task buoy. The server publishes on a topic (boolean data type) which is subscribed by the ip node that changes a global boolean variable which is checked in a if condition in the main while loop. If that boolean is then only the whole processing of images starts. So you need to add similar check in all the other IP nodes including line detection and line following node.

(hardware_layer) Pressure sensor

Although I think it will be a part of the existing arudino code. You just need to make the arduino publish that data to a topic like sensor/data/pressure_sensor

(utils) Code Naming Consistency

Executable name (declared in Cmake), CPP file name and node name should be same. And it should be governed by CPP file name. For consistency.

(utils) Send node names, topic names and anyother string from launch file

The code of nodes should not have string constants in them. For example if I change the name of forwardServer from "forward" to something else then everything will stop working. Better would be to give these strings to node from the launch file so that we can see all such strings in one place. also we can use xmacro ros pkg to simplify our ros launch files.

Yaw publish on gazebo

right now gazebo is publishing only raw data. You need to publish the yaw angle for calibrating turn pid on gazebo

Test nodes for PID calibration

Write the test nodes for all the motion for calibrating pid, also ensure that the sensors do not publish the data directly to the motion library, the data should go through the test nodes and the task handlers.

(hardware_layer) Add ip preprocessing node

Add a preprocessing node which takes image from varun/sensors/front_camera/image_raw and varun/sensors/bottom_camera/image_raw and fixes camera distortion and publishes to varun/sensors/front_camera/image topic which can then be used by ip nodes. Since camera distortion is in both hardware and gazebo so this can be a part of hardware layer.

(hardware_layer) IMU

Calculate angular velocity and acceleration integrate to get positions ,angular orientation,would work for short time only. would help in stabilization. Publish msg using official Imu msg. Publish data to sensor/data/imu

(utils) Documentation of Arduino code

It should be in two levels one should be like an abstract and the other one should have detailed explanation for each function. It will help new members to contribute.

(debug_layer) Build gazebo emulator

Fix gazebo

  • respond to motionlibrary output
  • simulate sensors data (imu, pressure sensor, camera)
  • write launch files to run bot in gazebo so basically have a choice between starting hardware layer vs gazebo

(hardware_layer) restore old arduino node

Restore older arduino node and have 2 nodes as the new node will be used only for testing remote control. The old node where the choice of which thruster to use will be made by arduino node.

(hardware_layer) Cameras

OpenCV change image processing nodes to use image from topic and change hardware_camera to publish images on topic. Topics can be named like
sensor/data/camera_front
sensor/data/camera_bottom

Add stabilization to the task handlers

In all motions, bot performs an unexpected yaw motion. To prevent this, add goal in the task handlers with infinite loop time that will ensure the yaw angle to be fixed.

(task_handers_layer) Auto calibration image processing nodes.

All image processing nodes should have a dynamic reconfigure button. on pressing it. image processing node calibrate its constants depending on the image from camera. Basically we tell the code that yes there is a specific arrangement in front of it. Now it needs to fix its constants such that it get starts getting positive results for that data.

script to change version number

Language - bash/python
Usage - Recursively find all package.xml files and set input as version number IF version number is higher than input then roll back changes and give error.

(task_handler_layer) Fix line detection and line following nodes

Right now our bot stops the thrusters on detecting the line but goes on drifting due to inertia and the line following node just take the angle and align it to the angle of the line. By this our bot gets displaced and it aligns with the line but the center is not at the line. @siddsax you need to fix this problem. What we can do is first align the bot to the line and then move the bot sway until the line center and the bot center coincides. The direction of sway can be obtained by the position and the angle of the detected line.

(master_layer) roslaunch files

Write different sets of launch files with ros params for both robots so no need to run multiple terminals for running bot And nodes should read parameters from there.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.