ubc-snowbots / snowflake Goto Github PK
View Code? Open in Web Editor NEWUBC Snowbots Codebase
UBC Snowbots Codebase
ros::NodeHandle public_nh("~")
. The problem is that the ros::NodeHandle handle_name("~")
declares a nodehandle in the private namespace.MY_PUBLISHER
) under the "public namespace" will actually create it under NODE_NAME/MY_PUBLISHER
which is incorrect.public_nh
changed to private_nh
We've not been able to get the IBEO lux running for a few years. Try and get it running! Ask gareth for more details.
Gazebo does not know where to find the world files. So add it in the environment. (in .bashrc).
Best to do this by amending the get_started.sh script
export GAZEBO_MODEL_PATH=/home/path/to/IGVC-2017/src/sb_gazebo/models:${GAZEBO_MODEL_PATH}
export GAZEBO_PLUGIN_PATH=/home/path/to/IGVC-2017/src/sb_gazebo/lib:${GAZEBO_PLUGIN_PATH}
export GAZEBO_RESOURCE_PATH=/home/path/to/IGVC-2017/src/sb_gazebo/models:${GAZEBO_RESOURCE_PATH}
Depends on: #82
SB_getParam
function from the sb_util
library.ros_vision
executable in the vision
package). To do this, add ${sb_utils_LIBRARIES}
to the target_link_libraries
statement for each node you want to to use the library in#include <sb_utils.h>
in the header of each node you want to add this toWhenever I try to use this, on sudo apt-get install -y python-catkin-pkg python-rosdep python-wstool ros-$ROS_DISTRO-catkin"
I get E: Unable to locate package ros-kinetic-catkin
and the corresponding Travis-CI error The command "sudo apt-get install -y python-catkin-pkg python-rosdep python-wstool ros-$ROS_DISTRO-catkin" failed and exited with 100 during .
. Any thoughts on what might be going wrong? I tried replacing the commands with those from the kinetic wiki but got the same error
Currently, when you launch gazebo, you have to manually pick up and drop the robot before it will move properly. We probably shouldn't have to do this.....
A quick search reveals this may be a good place to start: https://coderwall.com/p/fy05hq/how-to-make-beautiful-github-readme#team-members
We've just received our brand spanking new IMU! It's pretty cool, lots of pretty accurate data, and all in a neat little package. However, it still needs to be calibrated. Calibration instructions can be found here (under the indigo
section). The determined values should be written to our copy of the firmware file in src/firmware/razor_imu_9dof
, as per the calibration instructions.
Current, we are only able to run rostest's via the rostest
command line tool and via catkin_make run_tests
. We can run gtest's from CLion, and it would be really nice if we had the ability to run rostest's from there as well.
TLDR: give clion the ability to run rostest's like gtest's
.bashrc
and install programs, via apt-get
for stuff like ROS, and by manually wget'ing and install other packages, such as ClionSB_getParam
.sin(the angle of the obstacle relative to the robot) * (1/the distance of the obstacle from the robot)
src/decision/LidarObstacle.cpp
Since we're gonna work a lot on the nice new Snowbots laptop, it's nice if there's a way to share files easily without needing to be logged into an account. Gareth suggests setting up a network drive, open for suggestions.
Make all default x and y values relative to width and height.
There is an ROS_WARN
being thrown when the tests are run, namely:
[ERROR] [1487482866.179100462]: Given odd length list of waypoints, check that "waypoints" parameter has an (numerically) even length. As this is a series of lat/lon coordinates,it should always be even
This is an expected error, originating from the fact that the test causing it is actually testing an odd number of points. This error is causing warnings in the tests, and so should somehow be removed, or modified so that it indicates that it is acceptable for this to fail in testing (ie. add [t is acceptable for this to fail in testing]
to the end of it, or something like that)
Testing section should be amended or created to basically just point the reader at the sample package rostest stuff for an example of how to use setup functions with gtest.
Right now we're using a script (install_dependencies
)to manually install all dependencies, but CI uses a different (and much better system) where it finds all the requirements from the package.xml
files (fairly sure it's rosdep, or something like that anyhow). We should look at what CI is doing (script is located here) and change install_dependencies
to just use the same commands that CI does (although it should be kept separate from getting_started
to make it easier for people to update all their dependencies after they've setup the repo for the first time
In the vision stack (currently the ros_vision
node) if the node does not receive any camera input, then no windows will open up (normally there is one for raw camera, one for filtered camera, one with IPM, and the final image). The windows should still pop up, but display a message saying something like "No camera input". Alternatively (and much more simply) a ROS_WARN
message could be added to the node with a similar warning.
Right now the params are being saved to a file in a mildly sketchy location. They should be saved on the param server. For more details ask @ValRat
Currently, gps_decision requires the current heading in the same frame of reference as the "current_location" and "current_waypoint" (origin is starting location, 0 degree heading is starting heading). As such, you need to output the current relative compass heading on a new topic (probably "gps_manager/heading")
On initialise (of the sample programs) the ZED looks for a calibration file online but it can't download it through the terminal. Going to the link it provides, the file can be downloaded through a browser. Maybe try to figure out why it can't get the files through the terminal.
But we can download the file and set the calibration manually for a simple fix.
firmware/gps_firmware/gps_firmware.ino
.Porting over vision #17
Currently, there is a lot of repeated code in the CMakeLists.txt
files. Things like targeting_link_libraries
reference the same thing, and could probably be written a bit better if there were some sort of for
loop where you added your node and everything you needed was just linked in automatically.
This will likely require a fair amount of CMake knowledge, a good place to start might be to get @fhackett to take a look at the problem and make some suggestions given his CMake expertise.
ros_vision
ipm_and_hsv_filter
CMakeLists.txt
, the class name in .cpp
and .h
files for ros_vision, the names of aforementioned .cpp
and .h
files, the topics that other nodes are subscribing to that are under the ros vision namespace (ie. /ros_vision/something
), launch files...Just a reminder to do this sometime in the future:
Add the package dependency ros-kinetic-grid-map && laser_geometry
to both the setup script and the CI script if applicable so that project compiles for everyone once #52 gets merged in.
Currently, every project has a cmake file generated by catkin_create_pkg
, which have many useful comments, but there's no need for them to be in every cmake file. All comments should be retained in the sample_package
project, but all other projects can have their CMake files cleared of most explanatory comments (unless they are specific to the project or otherwise make things significantly clearer)
Currently, SB_changeVectorOrientation
is fairly slow, largely because we're translating everything from geometry_msgs
to tf
, and back again. We can probably do this faster if we just do the math ourselves, instead of relying on the tf
package to do it for us. Code is in src/sb_utils/src/sb_utils.cpp
Note: This code has not been merged yet. Ask Gareth for details
sample_package
with a couple of really basic demo tests to help get people up and runningThis issue will likely be split off into multiple issues later on, as we decide on how to split up projects
grid_map
librarydecision->LidarObstacle
class, and the rest is either trivial, or needs to be moved from the LidarDecision
class to the LidarObstacle
classSee vision project for an example
In CMake, need to:
find_package(sb_utils REQUIRED)
add ${sb_utils_INCLUDE_DIRS}
to include_directories
add <build_depend>sb_utils</build_depend>
and <run_depend>sb_utils</run_depend>
to package.xml
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.